从JDK动态代理到SPRING AOP
代理模式
?? 代理模式是常用的java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。
?? 代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类对象的相关方法,来提供特定的服务。
代理分类
?? 静态代理:由程序员创建或特定工具自动生成源代码。在程序运行前,代理类的.class文件就已经存在了。?
???动态代理:在程序运行时,运用反射机制动态创建而成。
静态代理代码示例
首先创建接口:
说明:
第一个*表示方法的返回值,这里使用通配符,只有返回值符合条件的才拦截(!void表示有返回值)。?
第一个..表示com.royzhou.aop包及其子包。?
倒数第二个*表示包下的所有Java类都被拦截。?
最后一个*表示类的所有方法都被拦截。
(..)表示方法的参数可以任意多个,如[(java.lang.String,java.lang.Integer)表示第一个参数是String,第二个参数是int的方法才会被拦截]???
配置文件:
前置通知 user1环绕开始this is getUser() method!后置通知最终通知环绕结束===========环绕开始this is addUser() method!后置通知最终通知环绕结束? 在项目开发中,AOP主要用来配置spring的声明式事务管理,它还可用在日志管理,性能监测等。它为程序员编程提供了一种新思路,我们可以不断去发现它的新用途。
?
?
?
?
?
?