spring三个核心功能

理解spring:spring就是一个容器加一个工厂模式
工厂用来创建对象,容器用来保存对象,spring是一个容器,也是一个创建对象的工厂

spring三个核心功能

IOC
控制反转,创建对象,拿工厂模式来创建,从原来自己代码来管理,交给工厂来管理,
三种方式:
1.直接指向全类名,
2.自己定义factorybean和factorymethod
3.通过实现FactoryBean<T>接口,通过这样创建对象,一般用于第三方,eg:mybatis的SqlSessionFactoryBean直接获得SQLSessionFactory)

DI 设置属性用的
 依赖注入(设置属性,second,三种DI方式:1、通过get、set进行属性设置,即依赖注入,注意是根据其方法名获取的,利用反射。基础类型-value
                                        数组-array、list-list(为arrayList)、set-set(为LinkedHashSet)、map-map、
                                        属性为自己创建的类时用ref连接定义的bean
                                      2、通过构造器进行属性设置。constructor-arg
                                      3、自动装配。autowired。可以根据名字或类型来装配,但类型时只能有且只有一个)
                                      
AOP
实现AOP的三种方式:1.通过实现AOP提供的前 后置接口,实现其before,after方法,再进行配置advisor,进行实现Aop
                  2.通过自己创建aspect,确定advisor(自己创建,里面有各种切面位置的方法),再进行配置切点和各种切面位置
                  3.通过注释进行创建,但需要配置动态代理,注意若不是接口则需要切换CGLIB动态代理
面向切面编程
 切点:确定进行AOP的方法,一般是service中的所有方法(方法叫切点)
 切面:方法中的各种切入位置,前置,后置,返回成功,返回异常,环绕
 织入过程:通过AOP的实现方式,将实现的advisor织入方法
 增强  增加功能(织入增强的代码)  
针对每一个切面都有一个增强
五个切面(五个通知) 前置,后置,正常状态,异常状态,环绕通知


BeanFactory和FactoryBean的区别:
区别:BeanFactory是个Factory,也就是IOC容器或对象工厂,FactoryBean是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似


版权声明:本文为gengenwa原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。