一.spring框架
spring是一个项目管理框架,组合了众多优秀设计模式,将众多框架进行有机整合。
二.IoC:控制反转
反转了依赖关系的满足方式,由之前自己创建依赖对象,变为由工厂推送,变主动为被动。使得有依赖关系的组件之间的耦合性降低,项目形态更加稳健。
注入:在配置文件中为属性赋值的方式。
依赖注入:在spring创建对象的同时,为其属性赋值,称之为依赖注入。有三种注入方式,分别是set注入,构造注入,自动注入。除了构造注入外,其他两种方式都是用的空参的构造方法。
set注入:在创建对象时,spring工厂通过set方法为对象的属性赋值。
构造注入:在创建对象时,spring工厂通过构造方法为对象的属性赋值。
自动注入:不用在配置中指定为哪个属性赋值,以及赋予何值。由spring自动根据某个原则,在工厂中查找一个bean,为属性赋值。
spring工厂特性:
单例的bean采取饿汉式创建方式,即工厂创建后,会将spring配置文件中的所有对象都创建完成。这样可以i提高陈旭运行效率,避免多次IO,减少对象创建时间。
多例的bean采用懒汉式创建。
bean的生命周期:
三.AOP
代理的概念:通过代理实现辅助功能,将核心功能与辅助功能分开。
AOP:面向切片编程,通过代理类为原始类的方法添加辅助功能。
四种通知类:
切入点表达式的常见写法:
spring包含了jdk与cglib两种动态代理,如果目标业务类有接口则使用jdk代理,否则使用cglib代理。
后处理器:
加上后处理器后,一个完整的bean的生命周期如如下: