一篇文章带你了解三层架构+分层解耦!!!

张开发
2026/4/11 22:15:00 15 分钟阅读

分享文章

一篇文章带你了解三层架构+分层解耦!!!
引言随着项目复杂度提升代码耦合、维护困难等问题逐渐凸显三层架构与 Spring 的 IOC、DI 机制成为解耦优化、提升代码可复用性与扩展性的关键方案。本文将围绕 Java Web 开发中的三层架构、控制反转与依赖注入等核心知识点展开梳理帮助快速掌握 Web 开发的核心理论与实操规范。一、三层架构Controller控制层接收前端请求、响应数据。Service业务层处理核心业务逻辑。Dao数据访问层负责数据增删改查。调用流程Controller → Service → Dao返回原路回调。原先三层都放在一个文件里会互相影响为了各司其职利于维护和修改将三个功能分开写这就是三层架构二、分层耦合虽然将三个功能分开各司其职但是每个功能代码里都需要new对象类之间强依赖若修改类名需要同步修改所有调用处因此我们需要解决耦合问题那么解决耦合的思路是用一个容器来管理资源、对象创建等不需要new对象降低依赖将项目中的类交给IOC容器管理IOC控制反转、应用程序运行时需要什么对象直接以来容器为其提供DI依赖注入三、IOC DI 入门上面只说了思路具体步骤将 dao 和 service 实现类交给IOC容器管理在该实现类上面标注 Component为 controller 和 service 注入运行时所依赖的对象在该实现类里面标注 Autowired三、IOC DI 详解1.IOC控制反转把对象的创建、管理交给 Spring IOC 容器不再手动 new。若把某个对象交给IOC容器管理需要在对应类上加上如下注解之一注意事项在Springboot集成web开发中声明控制器bean只能用Controller声明bean的注解想要生效需要被扫描到启动类默认扫描当前包及其子包前提是该类必须裸露在外面不在其他package里2.DI依赖注入1基于Autowired进行依赖注入的常见方式有如下三种属性注入优点代码简洁日常开发常用。缺点隐藏依赖关系破坏封装。构造函数注入优点安全可用 final依赖清晰。注意单构造函数可省略Autowired。Setter 注入优点封装性好依赖清晰。缺点代码冗余。2多个实现类解决方案Autowired默认是按照类型进行注入的如果存在多个相同类型的bean将会报错因此有三种解决方案3Autowired和Resource区别AutowiredSpring 提供按类型注入。ResourceJavaEE 提供按名称注入。

更多文章