Spring 框架

Spring 的概念

Spring
spring 是 一个轻量级的IOC和AOP容器框架
Spring的优点
1. Spring 是非侵入式的,基于Spring开发的应用一般不依赖于Spring 的类
2. Spring 是的容器,因为它包含并且管理应用对象生命c周期和配置,比如对象的创建,销毁,回调等
3. Spring 提供对事务的管理
4. Spring 对主流的框架提供了很好的集成,它相当于一个粘合剂,比如和hebrernate Spring MVC MyBatis 等框架的集成

Spring 的核心AOP IOC

IOC
Invert of control,控制反转,也称为 DI(依赖注入)。依赖对象的创建和维护交给了 spring 容器来管理,应用程序本身 不需要负责依赖对象的创建和维护,简单理解就是把原本应该我们去
AOP:
面向切面编程,本质就是拦截器,比如项目中的事务和日志就是很好的体现了 AOP。比如:操作数据库的增删改之前,都需 要开启事务,增删改之后,都需要提交事务,这样我们就可以写一个拦截器,底层就是采用动态代理实现前置通知和后置通知,在前 置通知中开启事务,在后置通知中提交事务,在 spring.xml 中配置通知即可,spring 的事务管理底层就用到了 AOP
Spring bean的生命周期
1.Bean容器找到配置文件中Spring Bean的定义
2.Bean容器利用Java Reflection API创建一个Bean的实例
3.如果涉及到一些属性值,利用set()方法设置一些属性值
4.如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。
5.如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象的实例。
6.如果Bean实现了BeanFactoryAware接口,调用setBeanClassFacotory()方法,传入ClassLoader对象的实例
7.与上面的类似,如果实现了其他*Aware接口,就调用相应的方法。
8.如果有和加载这个Bean的Spring容器相关的BeanPostProcessor对象,执行postProcessBeforeInitialization()方法
9.如果Bean实现了InitializingBean接口,执行afeterPropertiesSet()方法
10.如果Bean在配置文件中的定义包含init-method属性,执行指定的方法。
11.如果有和加载这个Bean的Spring容器相关的BeanPostProcess对象,执行postProcessAfterInitialization()方法。
12.当要销毁Bean的时候,如果Bean实现了DisposableBean接口,执行destroy()方法。
13.当要销毁Bean的时候,如果Bean在配置文件中的定义包含destroy-method属性,执行指定的方法。

Spring 的注入方式

①. setter 注入:对于习惯了传统的 JavaBean 开发的程序员来说,通过 setter 方法注入属性值是熟悉的、直观的和自然的。 如果依赖关系比较复杂,那么构造方法注入方式会导致构造方法相当庞大,此时使用设值方式更为简洁
②. 构造注入:构造方法注入很好的响应了 Java 设计原则之一,在构造期间即可创建一个完整、合法的对象;避免了繁琐的 setter 方法的编写,所有的依赖关系均在构造方法中设定,依赖关系集中体现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值