spring 个人总结

spring总结

spring IOC&&AOP

IOC

控制注入
其本质为将代码本身控制的对象交给spring容器进行管控,而代码可直接对其进行使用。
原理:反射与工厂模式实现IOC
当对象交于spring容器进行管理时,spring管理的对象需要在配置文件中进行配置,也就是配置bean。而配置bean时,会把对象的类的全路径进行填写,其原因是因为spring正使用反射与工程模式生成bean对象时,需要填写类的全路径。
这里写图片描述
spring如何获取bean
获取ApplicationContext实例对象,然后获取bean,其中beanFactory也是一个接口,其最终会调用AbstractBeanFactory中的doGetBean方法来初始化bean
这里写图片描述
核心代码:
这里写图片描述

AOP

面向切面
简单地说,就是将那些与业务无关,提供统一功能的代码进行统一管理,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。比如spring提供的事务管理。其就是面向切面的一种实例。还有日志的处理、权限的认证等。
原理:动态代理实现AOP
当在不改变原有代码的基础上去添加一些代码逻辑时,如,添加日志和权限。此时可以实现的方式大致有二种,1.继承,然后重写方法时,在调用父类中方法前后可以添加日志或则权限。2.组合方式,在新类中把调用类当做属性注入。此时在调用方法时,可以在其前后添加日志或权限。但是若要管理的类过多的话,此时就需要通过动态代理来进行管控。
这里写图片描述

这里写图片描述
AOP概念
1、横切关注点
对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点
2、切面(aspect)
类是对物体特征的抽象,切面就是对横切关注点的抽象
3、连接点(joinpoint)
被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器
4、切入点(pointcut)
对连接点进行拦截的定义
5、通知(advice)
所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类
6、目标对象
代理的目标对象
7、织入(weave)
将切面应用到目标对象并导致代理对象创建的过程
8、引入(introduction)
在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段

bean生命周期

当容器初始化时,会将配置中所有没有配置lazy加载的bean,初始化到容器中。若bean配置为单例模式则每次获取bean时,不会再初始化bean操作。若不为单例模式,每次获取bean时都进行初始化操作。当容器停止时,bean会被销毁。单例模式的bean也可以主动调用destory()方法进行销毁。但是若bean配置不为单例模式,则无法直接调用destory()方法进行销毁。
bean的创建与销毁
指定bean创建时执行方法与销毁时执行方法,可在配置bean时,添加init-method与destroy-method属性值。当一个bean被创建时,其内部方法执行顺序为(创建–销毁):执行块中代码>>构造方法中代码>>指定init-method方法>>destroy-method方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值