spring源码分析,重新认识spring 一

spring ioc 就是控制反转和依赖注入,就是从前对象由自己new 出来,现在对象由spring 容器统一管理和生成,然后通过xml 配置 ,由set 方法(没有set 方法,则直接赋值反射 把private 设置为可以修改,强制赋值),或构造器,或工厂方法注入进来,当然现在都是用注解,也可以由注解配置。

spring ioc它的实现方式:因为类之间是相互引用的,从前我以为是通过 递归去不停的先实例化和生成引用的类,后面想了下如果遇到的是 相互引用,岂不是死循环了,所以不是这样的,它的注入实现方式是 先实例化依赖链中的所有bean 对象,然后一个一个去注入,这里我理解错误的盲点在于 我觉得必须实例化好 成员变量才产生对象,其实是可以先产生对象,然后再去注入其中的成员变量。


spring aop 从前觉得是 动态代理,但是其实 动态代理只是它的一种实现方式。

它真实的是 面向切面编程,什么是切面?整体的局部就是切面,而面向切面编程就是把 一些局部的,可以重用的功能独立出来 分别开发,由相应的接口规则规定,因为一个这些局部需要需要再合起来使用,所以需要接口来作为规则,主要是为了解耦合 和 重用代码。

而jdk 的动态代理只是他的一种代码实现的方式,spring 的是使用 jdk 的动态代理来实现 接口的代理,如果没有接口 则使用 cglib 做 类的代理。

 问题和疑惑

为什么jdk 动态代理可以实现接口的代理,而cglib 实现类的代理?

下一章详细分析






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值