首页 > 代码库 > Spring注入aspectJ切面

Spring注入aspectJ切面

1、用关键字aspect即可声明一个切面如:

          hww1

         切面定义完毕,可以发现,pointcut被当做一个类型,指定切点还是用execution表达式;after()和returning()也被当做一个类型来声明一个通知

2、在JudgeAspect中有一个CriticismEngine类型的成员变量,为了实现对象间的松耦合,我们在aspectJ中使用Spring的依赖注入来为JudgeAspect注入CriticismEngine对象。首先将CriticismEngine声明为bean,然后再将JudgeAspect声明为bean,注意在声明JudgeAspect bean时,要用如下格式:

           hww2

要为bean指定一个factory_method来创建Aspect的bean。因为Aspect对象不是有Spring来创建的,而是由JVM在运行时创建的,等Spring容器能创建Aspectbean的时候,Aspect对象已经被实例化了,不用再创建新对象,而Aspect类中有一个静态的Aspectof()的方法,可以返回切面的一个单例,所以我们用高factory-method来代替JudgeAspect的构造方法。