Spring是一个轻量级、企业级开发的开源框架。是一个容器,管理着整个应用程序范围内的类,类的对象的创建方式,对象的作用域及声明周期。两大重要核心组件IOC和AOP。
IOC:控制反转,也称为DI,依赖注入
AOP:面向切面
一、 IOC容器
1.IOC容器:放各种对象,可以管理对象的生命周期、对象与对象之间的依赖关系。
2.spring容器默认创建bean的对象的方式:单例模式。
3.Spring的优势:低耦合(降低组件之间的关联性,实现软件各层之间的解耦)。
4.IOC底层原理:xml解析,工厂模式,反射。
5.spring提供IOC容器实现的两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用。
加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象。
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员 进行使用。加载配置文件时候就会把在配置文件对象进行创建。
6.ApplicationContext接口有实现类
7.IOC操作Bean管理
(1)什么是Bean管理
spring创建对象
spring注入属性
(2)Bean管理操作有两种方式
基于xml配置文件方式实现
基于注解方式实现
如果对象在初始化的时候不需要有初始值,用@Component 如果对象在初始化的时候需要有初始值,用xml或者是配置类
注解版的自动装配原则: 1、先按照byName 2、再按照byType
二、AOP
AOP:面向切面编程
事务,权限,日志
在不改变原有的逻辑基础上,增加一些额外的功能
通知:前置通知,后置通知,异常通知,返回通知
连接点:(JoinPoint),允许你通知的地方。spring只支持方法的连接点。
切入点:(Pointcut),让切点筛选连接点,选中那几个你要管理的方法。
切入点表达式:Spring Expression 表达式
切面:通知和切入点的结合。通知是说明干什么和什么时候干,切入点说明在哪干。
织入:(weaving):把切面应用到目标对象新的代理对象的过程。
环绕通知:手动处理方法的执行以及返回等操作...
在使用环绕通知时,需要关闭其他通知。