Spring
Spring是什么
spring是一个轻量级整合Ioc和Aop的容器框架,能够简化应用程序开发,使开发者只需要关心业务需求。
主要包括七大模块:
SpringContext:提供框架式的Bean访问方式和企业级功能
SpringCore:核心类库
SpringAop:面向切面编程
SpringWeb:提供面向web的综合特性
SpringMVC:提供面向web的model-wiew-controller的实现
SpringDao:封装jdbc,同意管理jdbc事务
SpringOrm:对现有的orm框架的支持
Spring的优点
spring数据低入侵设计,代码污染极低,Spring将di对象之间以来交给框架处理,降低组件的耦合性,Spring提供Aop面向切面编程,开发者只需要关注核心业务,spring对于主流应用提供集成支持。
SpringIoc
ioc控制反转,把对象的管理权交给Spring框架,让Spring来控制对象的生命周期
di依赖注入:在程序的时候动态的向某个队形提供他所需要的对象,通过反射实现注入的
原理:工厂加反射机制
SpringAop
aop由叫面向切面编程,开发者只需关心核心业务,公共方法被封装成一个重用的模块,能够动态切入到各个类。
减少了重复代码,降低耦合度。
Aop主要实现是代理模式,动态代理和静态代理
SpringMvc是什么
spring是基于mvc架构来简化开发的框架,是spring的模块,把web分成model,view,contriller三部分,简化开发
SpringMvc优点
基于java组件,与spring其他组件紧密相连,支持各种请求资源的映射策略
SpringBean的生命周期
- 定义bean:三种方式,xml文件、propeties文件,@Configuration注解
- 读取bean实现BeanDefianReader接口,读取bean定义
- DeanDefinition解析这个对象
- 创建bean,bean工厂通过反射创建bean(不完整bean)
- bean初始化
- 前置增强
- init初始化
- bean后置增强
- 创建完成,完整bean
SpringAop
aop由叫面向切面编程,开发者只需关心核心业务,公共方法被封装成一个重用的模块,能够动态切入到各个类。
减少了重复代码,降低耦合度。
Aop主要实现是代理模式,动态代理和静态代理
动态代理
jdk动态代理:基于接口,生成实现接口的匿名类,然后重写方法
cglib动态代理:基于继承,继承被代理类,重写父类的方法
Spring事务管理机制
声明式事务:aop实现自动完成
编程式事务:程序员手动开启调教回滚