ioc,di,aop详解

理解的话我们需要脱离Spring去看面相对象设计原则。

依赖倒置(DIP)原则是面向对象设计的主要实现机制之一。

它要求我们依赖接口编程,而不是依赖实现编程。尽量引用层次高的抽象层类,即使用接口和抽象类的形式进行变量类的声明、参数返回类型声明,以及数据类型的转换等。

但当我们在依赖抽象层编程时,需要将抽象类设置具体实例化以后的对象引用。

故引入控制反转(IoC)设计原则。控制反转是为了将具体对象的创建过程交由一个统一容器进行管理,降低代码耦合度,其关键在于容器(如Spring)。

而控制反转(IoC)的实现方法主要有两种:依赖注入(DI)和依赖查找(DL)。

依赖注入(DI)又存在常见四种方式:构造注入(构造函数)、设值注入(setter)、接口注入(对外提供传递具体实现的方法,但参数类型为抽象类型)、注解注入(外部容器扫描注解,关联引用,如:@Autowired)

依赖查找更加主动,在需要的时候通过调用框架提供的方法来获取对象,获取时需要提供相关的配置文件路径、key等信息来确定获取对象的状态。(如:Spring的ApplicationContext)

最后AOP的主要目的在于扩展、修改原有代码行为而不修改代码本身,而是通过“切入点”规范指定哪些代码需要修改。

实现AOP的技术,主要分为两大类:一是采用动态代理技术,运行期间在内存中动态生成代理类,如Java本身的Proxy动态代理,以及CGLIB等(Spring Aop使用此类方式);二是采用静态织入的方式,在运行前(如编译期间)织入代码(如AspectJ存在编译前、编译后、加载时三种织入方式)。

有帮到你的点赞、收藏一下吧

                                                                       需要更多教程,微信扫码即可

                                                                                 

                                                                                         👆👆👆

                                                        别忘了扫码领资料哦【高清Java学习路线图】

                                                                     和【全套学习视频及配套资料】
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值