IOC容器
1.IOC(概念和原理)
1、控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
2、使用IOC的目的,为了耦合度降低
2.IOC底层原理
1、xml解析、工厂模式、发射
3.图解IOC底层原理

IOC(接口)
1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供了IOC容器实现的两种方式:(两个接口)
(1).BeanFactory:IOC容器中最基本实现,是spring内部的使用接口,不提供给开发人员使用
**加载配置文件时,不会创建对象,在获取(使用)对象时,才去创建对象。
(2).ApplicationContext:BeanFactory接口的子接口,提供了更多更强大的功能,一般是由开发人员使用。
**加载配置文件时,就会把配置文件中的对象进行创建。
3、ApplicationContext接口有实现类

IOC操作Bean管理(概念)
1、什么是Bean管理
1.Spring创建对象
2.Spring注入属性
2、Bean管理操作有两种方式
1.基于xml配置文件方式
2.基于注解方式实现
IOC操作Bean管理(基于xml方式)
1、基于xml创建对象
1.在spring配置文件中,使用bean标签,标签里面添加对应的属性,就可以实现对象创建
2.bean标签中有很多属性,常用属性介绍。
**id属性:唯一标识
**class属性:类全路径(包类路径)
3.创建对象的时候,默认也是执行无参构造fangf完成对象创建。
2、基于xml方式注入属性。
1.DI:依赖注入,就是注入属性。
第一种注入方式:使用set方法进行注入
第二种注入方式:使用有参构造方法注入
IOC操作管理Bean(xml注入其他类型属性)
1、字面量
1.null值
<property name="address">
<null></null>
</property>
2.属性值保护特殊符号
<property name="address">
<value>
<![CDATA[<<南京>>]]]>
</value>
</property>
3.注入属性,外部bean
1.创建两个类service类和dao类
2.在service调用dao里面的方法
3.在spring配置文件中进行配置
4.注入属性-内部bean和级联赋值
1.一对多的关系
5.IOC操作bean管理(xml注入集合属性)
1.注入数组集合类型属性
2.注入list集合类型属性
3.注入map集合类型属
IOC操作Bean管理(FactoryBean)
1、Spring有两种bean,一种时普通bean,另外一种时工厂bean(Factory)
1.普通bean:在配置文件中定义bean类型就是返回类型。
2.工厂bean:在配置文件中定义bean类型可以和返回类型不一样。
IOC操作bean管理(bean作用域)
1、在Spring里面,设置创建bean实例是单实例还是多实例。
2、在Spring里面,默认情况下,bean时单实例对象。
3、在Spring配置文件bean标签里面有属性(Scope)用于设置单实例还是多实例
scope属性:
默认值:singleton 单实例
可选值:prototype 多实例
singleton和prototype区别
1、singleton 单实例、prototype 多实例
2、设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象。
设置scope值是prototype时候,不在加载spring配置文件时候创建对象,在调用getBean方法的时候创建多实例对象。
IOC操作Bean管理(Bean的生命周期)
1、生命周期
从对象的创建到对象的销毁。
2、bean的生命周期
1.通过构造器创建bean实例(无参构造)
2.为bean的属性设置值和其他bean的引用(调用set方法)
postProcessBeforeInitialization
3.调用bean初始化方法(需要进行配置)
postProcessAfterInitialization
4.bean可以使用(对象获取到)
5.当容器关闭的时候,调用bean的销毁方法(需要进行配置销毁的方法)
IOC操作Bean管理(xml自动装配)
1、什么是自动装配
1.根据指定装配规则(属性名称或者属性类型)
IOC操作Bean管理(基于注解方式)
1、什么是注解
注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)
使用注解,注解作用在类上面,方法上面,属性上面
使用注解的目的:简化xml配置
2、Spring针对Bean管理中创建对象提供注解
1.@Compoent
2.@Service
3.@Controller
4.@Repository
3、基于注解方式实现创建对象
第一步
4、注解方式实现属性注入
1.@AutoWired:根据属性类型进行自动装配
2.@Qualifier:根据属性名称进行注入
3.@Resource:可以根据类型,也可以根据名称注入
AOP
AOP概念
1、什么是AOP
面向切面编程
AOP(底层原理)
1、AOP底层使用动态代理
有接口的情况: 使用JDK的动态代理
创建接口实现类代理对象,赠强类的方法。
没有接口的情况:使用CGLIB的动态代理
创建子类的代理对象,增强类的方法。
AOP(JDK动态代理)
1、使用JDK动态代理
AOP(术语)
1、连接点
类里面哪些方法可以被增强,这些方法称为连接点。
2、切入点
实际被真正增强的方法,称为切入点。
3、通知(增强)
实际增强的罗辑部分称为通知(增强)。
前置通知:
后置通知:
环绕通知:
异常通知:
最终通知:
4、切面
把通知应用到切入点过程。