在做SPRING 的AOP小例子的时候,配置完成后,所有的AOP的advice实现都不起作用。后来读下面这一篇文章,才恍然大悟。
对于AOP的原理,简单理解,就是在代理对象的各个切入点执行另外的方法。所以,当各种advice方法不执行的时候,应该考虑到AOP的原理,然后在client代码中考虑获取service接口实现的时候,要直接获取proxy的bean。
一个是经验,一个是知识没有成为完整的体系。
下面的文章 来自 ◎筱米加步枪◎.Blog
自己的代码就不贴了,转载一下上面的简单例子:
昨天,做了有关日志的AOP,对相关的AOP知识总结如下:
1.引入AOP(Aspect Oroented Programming) 面向切面编程,是消除代码重复的一种方法。
2.Spring AOP 中提供了两种PointcutAdvisor,分别是:
①org.springframework.aop.support.RegexpMethodPointcutAdvisor (需要加上完整类名,可以用Spring提供的匹配方式)
②org.springframework.aop.support.NameMatchMethodPointcutAdvisor(只需要方法名,不用加类名)
今天,主要来说明下RegexpMethodPointcutAdvisor的用法。贴一个例子来说明,一些说明都写在注释中~看贴的代码:
IPrinter(打印接口)
/**
* 打印接口
* @author ChenST
*/
public interface IPrinter {
/** 打印接口 */
public void print();
}
PrinterImpl(打印实现类)
/**
* 打印接口实现类
* @author ChenST
*/
@Repository
public class <