**
spring基础入门知识
**
企业级代码基本要求 高内聚低耦合
Spring 体系结构
底层是核心容器.
Beans
Core
Context
springEl表达式
中间层技术
AOP
Aspects
应用层技术
数据访问与数据集成
Web集成
Web实现
基于Test测试
Spring 两大代理
Jdk动态代理 jdk需要接口的实现
Cglib动态代理 cglib 不需要接口的实现
AOP 相关概念
Aspect(切面)
Joinpoint(连接点)
Advice(通知)
Pointcut(切入点)
Introduction(引入)
Target(目标对象
AOP Proxy(Aop 代理)
Weaving(织入)
代理工厂类
ProxyFactoryBean 只能为一个目标创建代理 多个目标需要配置多次
BeanNameAutoProxyCreator 配置一次就可代理多个目标
AOP 方式
基于 xml方式 配置applicationContext.xml 文件
基于shema方式
基于shema+注解的方式
切⾯(Aspect):⼀个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应⽤中⼀个关于横切 关注点的很好的例⼦。在Spring AOP中,切⾯可以使⽤通⽤类(基于模式的⻛格)或者在普通类中以@Aspect 注解(@AspectJ⻛格)来实现。
连接点(Joinpoint):在程序执⾏过程中某个特定的点,⽐如某⽅法调⽤的时候或者处理异常的时候。在 Spring AOP中,⼀个连接点 总是 代表⼀个⽅法的执⾏。通过声明⼀个org.aspectj.lang.JoinPoint类型的参 数可以使通知(Advice)的主体部分获得连接点信息
。
通知(Advice):在切⾯的某个特定的连接点(Joinpoint)上执⾏的动作。通知有各种类型,其中包括“around”、 “before”和“after”等通知。通知的类型将在后⾯部分进⾏讨论。许多AOP框架,包括Spring,都是以拦截器做 通知模型,并维护⼀个以连接点为中⼼的拦截器链。
切⼊点(Pointcut):匹配连接点(Joinpoint)的断⾔。通知和⼀个切⼊点表达式关联,并在满⾜这个切⼊点的连 接点上运⾏(例如,当执⾏某个特定名称的⽅法时)。切⼊点表达式如何和连接点匹配是AOP的核⼼:Spring缺 省使⽤AspectJ切⼊点语法。
引⼊(Introduction):(也被称为内部类型声明(inter-type declaration))。声明额外的⽅法或者某个类型的 字段。Spring允许引⼊新的接口(以及⼀个对应的实现)到任何被代理的对象。例如,你可以使⽤⼀个引⼊来使 bean实现 IsModified 接口,以便简化缓存机制。
⽬标对象(Target Object):被⼀个或者多个切⾯(aspect)所通知(advise)的对象。也有⼈把它叫做被通知 (advised)对象。既然Spring AOP是通过运⾏时代理实现的,这个对象永远是⼀个 被代理(proxied)对象。
AOP代理(AOP Proxy):AOP框架创建的对象,⽤来实现切⾯契约(aspect contract)(包括通知⽅法执⾏等功 能)。在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。注意:Spring 2.0引⼊的基于模式 (schema-based)⻛格和@AspectJ注解⻛格的切⾯声明,对于使⽤这些⻛格的⽤⼾来说,代理的创建是透明 的。
织⼊(Weaving):把切⾯(aspect)连接到其它的应⽤程序类型或者对象上,并创建⼀个被通知(advised)的对 象。这些可以在编译时(例如使⽤AspectJ编译器),类加载时和运⾏时完成。Spring和其他纯Java AOP框架⼀ 样,在运⾏时完成织⼊。