李林朋
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在面向对象编程中,其基本思路是实现对象之间的低耦合,高内聚,而在传统的Java代码编写中,如果有某个对象A依赖于其他对象B,在使用时,需要先创建所依赖的对象B,传入对象A,然后才能对对象A进行操作,这种方式提高了代码的耦合度,十分不利于重构和维护
采用spring的依赖注入,可以促进代码的松散耦合。借助这种方式,对象无需知道依赖来自何处,或者依赖的实现方式,确保了低耦合[1]
传统方式,需要先用new关键词,或者是通过工厂类来创建一个所依赖的对象,传入当前对象
IOC,Inversion of Control,控制反转,不是什么技术,而是一种设计思想,它包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。在Java开发中,Ioc意味着将设计好的对象交给容器控制,而不是传统的在对象内部直接控制。
DI—Dependency Injection,即“依赖注入”
谁依赖于谁:当然是应用程序依赖于IoC容器
为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源
谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象
注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)
spring提供了三种主要的方式来配置
1.在XML中进行显式配置
2.在Java中进行显式配置,JavaConfig
3.隐式的bean发现机制和自动装配
采用传统方式编写代码,在对象之间存在依赖关系时,会使代码难以维护和重构
采用spring的IOC
@Component,@Service,@Controller,@Repository的区别
@Service用于标注业务层组件、
@Controller用于标注控制层组件
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
[1].spring In action
感谢观看
BY : 李林朋