SpringAOP原理介绍
2016-03-26 11:53
716 查看
AOP原理介绍
IOC:反射技术
AOP:动态代理技术
Spring框架采用AOP应用后,Spring容器返回的组件,是采用动态代理技术
新生成的一个类(组件)。返回的新组件一般被称为动态代理类,动态代理
类中的方法实现原有组件的方法。在代理类方法中,调用了原有组件的方
法和切面组件的方法。
Spring采用了两种动态代理技术生成代理类
-采用JDK API java.reflect.Proxy
(仅适用目标组件带有接口)
public class $Proxy* implements 目标接口
{
//重写目标接口方法
}
-采用CGLIB工具包
(适用目标组件有无接口都可以)
public class 代理类 extends 目标类型{
//重写父类所有方法
}
如果需要强制采用CGLIB可以在下面元素中
追加proxy-target-class="true"设置
<tx:annotation-driven/>
<aop:config>
<aop:aspectj-autoproxy/>
IOC:反射技术
AOP:动态代理技术
Spring框架采用AOP应用后,Spring容器返回的组件,是采用动态代理技术
新生成的一个类(组件)。返回的新组件一般被称为动态代理类,动态代理
类中的方法实现原有组件的方法。在代理类方法中,调用了原有组件的方
法和切面组件的方法。
Spring采用了两种动态代理技术生成代理类
-采用JDK API java.reflect.Proxy
(仅适用目标组件带有接口)
public class $Proxy* implements 目标接口
{
//重写目标接口方法
}
-采用CGLIB工具包
(适用目标组件有无接口都可以)
public class 代理类 extends 目标类型{
//重写父类所有方法
}
如果需要强制采用CGLIB可以在下面元素中
追加proxy-target-class="true"设置
<tx:annotation-driven/>
<aop:config>
<aop:aspectj-autoproxy/>
相关文章推荐
- java判断字段是否final修饰
- Spring AOP应用
- Java 中ThreadLocal类详解
- Java 对Map进行排序的实现方法
- Java图形界面基础-绘制乌龟可能会出现的问题以及浅谈Java中的静态属性
- 图解Java中的GC(分代收集器)
- 第二章 Java基础之GJLIB动态代理
- Spring AOP编程
- 关于音频PCM数据2字节(16位)byte与64位double之间的转换
- ZooKeeper Watch Java API浅析exists
- Eclipse下的Setting property 'source' to '...' did not find a matching property 错误
- Java中将JSON格式的数据转换成对应的Bean、Map、List数据
- Java多线程锁异常:IllegalMonitorStateException
- Spring事务管理
- ZooKeeper Watch Java API浅析getData
- 白话Spring(中级篇)---注解(2)
- Abstract class VS Interface2
- 用Java实现各种排序(2)---希尔排序
- java的继承
- Java中千变万化字符串