Spring框架组件总结

来源:互联网 发布:python split() 编辑:程序博客网 时间:2024/06/16 11:38

spring是管理多个java类的容器框架,不管理接口。
一、Aspect:AOP的实现
有关springAOP的三个概念:
1、advice:向程序内部注入的代码
2、pointcut:注入advice的位置,切入点
3、advisor:将advice注入预定位置的代码
有关springAOP的一些术语:
1、切面(Aspect):可以使用通用类或者在普通类中以@Aspect注解来实现
2、连接点(JoinPoint):一个连接点代表一个方法的执行。
3、通知(Advice):在切面的某个特定的连接点上执行的动作。
4、切入点(Pointcut):定义一个或者一组方法,当执行这些方法时可产生通知,缺省使用Aspectj切入点语法。

实现AOP的两种方式:
1在类上注解@Aspect,Aspectj风格
2在配置文件中配置bean,在配置 proxy-target-class默认值为false,表示使用JDK动态代理,为true表示使用CGLIB动态代理.但是如果目标类没有声明接口,则spring将自动使用

CGLIB动态代理。XML风格
AnnotationAwareAspectJAutoProxyCreator:创建自动代理。

AOP的通知类型:
前置通知(@Before):在某个连接点之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛异常)
后置返回通知(@AfterReturning):在某个连接点正常完成后执行的通知。
后置异常通知(@AfterThrowing):方法抛出异常退出时执行的通知
后置最终通知(@After):当某个连接点退出的时候执行的通知
环绕通知(@Around):包围一个连接点的通知,这是最强大的一种通知类型,环绕通知可以在方法调用前后完成自定义的行为,它也会选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行。

二、IOC反转控制:
实例化一个bean类的时候,由spring容器进行执行。而不是传统的由调用方进行实例化。

三、DI依赖注入:
在spring实例化bean的操作的同时,spring将执行bean类中变量的赋值操作。
注入有构造函数赋值和set方法赋值(推荐)。set注入的前提:保留默认的无参构造函数,变量私有化,变量存在对应的公有set方法。

四、七个核心模块

SpringAOP、通过配置管理特性、面试切面编程。
SpringORM、提供了ORM的对象关系工具,包括JDO、Hibernate、JPA。遵从spring的通用事务和DAO异常层次结构。
SpringDAO、对DAO抽象层提供异常层次结构
SpringWeb、基于web应用程序提供了上下文,简化了处理部分请求以及将请求参数绑定到域对象上。
SpringContext、上下文是一个配置文件,向spring框架提供上下文信息。
SpringMVC、全功能的构建WEB应用程序的MVC实现。
SpringCore、核心容器主要是BeanFactory

Bean,Core,Context关系

在Spring的各种组件中,Bean,Core,Context算是基础组件(ExpressionLanguage表达式支持, 这个主要就是用来支持一些spring
XML配置文件表达式 和 注解中一些表达式解析,让配置有动态特性,spring早期的版本是没有这货的,不算是特别必须的,
特别核心的东西,只是为了灵活性加的),在Core container这一层构建起了整个Spring的骨骼架构。在Spring中,强调的是对Bean的管理
,所以Bean是Spring所要面向的对象,就像是我们的oop一样,object是我们要面向的。

spring的依赖注入主要解决的问题就是把对象之间的关系用配置文件来描述,而这个注入关系在一个叫IOC容器中管理,所以这个容器中
放置的就是被bean包裹的对象,通过把对象包装在bean中来达到对对象的管理以及进行一些额外的操作。

三大核心组件关系:
Bean 包装的是 Object,而 Object 必然有数据,如何给这些数据提供生存环境就是 Context要解决的问题,对 Context 来说他就是
要发现每个 Bean 之间的关系,为它们建立这种关系并且要维护好这种关系。所以 Context 就是一个Bean关系的集合,这个关系集合
又叫 Ioc 容器,一旦建立起这个 Ioc 容器后 Spring 就可以为你工作了。那 Core 组件又有什么用武之地呢?其实Core 就是发现
、建立和维护每个 Bean 之间的关系所需要的一些类的工具,从这个角度看来,Core 这个组件叫 Util 更能让你理解。

把Bean 比作一场演出中的演员的话,那 Context 就是这场演出的舞台背景,而 Core应该就是演出的道具了。只有他们在一起
才能具备能演出一场好戏的最基本的条件。当然有最基本的条件还不能使这场演出脱颖而出,还要他表演的节目足够的精彩,这些节目
就是 Spring 能提供的特色功能了。

原创粉丝点击