前面补充!
ApplicationContext容器:
当容器被创建时,会自动将容器中所有的Bean创建。
优点:系统响应速度快。
不足:浪费系统资源。
BeanFactory容器:
当容器被创建时,并不会自动将容器中的任何Bean创建。只有当真正使用该Bean时,才会由容器创建这个Bean。
优点:节省系统资源。
不足:相对来说,系统响应速度慢。
AOP
AOP,Aspect OrientProgramming,面向切面编程。是一种概念,是一种思想,其实现者很多,Spring就是实现者之一。
AOP是OOP的一种补充。OOP是从静态角度考虑程序的结构,而AOP是动态角度考虑程序的运行过程。
Spring用于降低耦合度。IoC用于降低主业务逻辑之间的耦合度;AOP用于降低主业务逻辑与系统级服务(交叉业务逻辑)间的耦合度,将系统级服务在运行时织入到主业务逻辑之中。
Spring的AOP的底层工作原理,是使用动态代理对主业务进行增强。而动态代理使用的是JDK的Proxy与CGLIB两种动态代理。
切面(Aspect)
切面就是交叉业务逻辑,就是要对主业务进行增强的部分。AOP编程中常见的切面有两种:通知、顾问。
织入(Weaving)
将切面切入到主业务逻辑中的过程,称为织入。
连接点(JoinPoint)
可以织入切面的目标类中的目标方法,称为连接点。
切入点(Pointcut)
真正织入切面的目标类的目标方法,称为切入点。切入点一定是连接点。
目标对象(Target)
用于被增强的对象,称为目标对象。
目标类的对象,就是目标对象。
主业务逻辑所在的类的对象,就是目标对象。
通知(Advice)
是一种切面,可以完成简单的织入功能。例如,可以指定织入的时间点。
通知可以指定织入的时间点,切入点指定的是织入的位置。
(1) 顾问(Advisor)
(2) 引入(Introduction)