Spring之注解形式AOP的实现
一、创建注解实现类:LogAnnotation.java
package org.ruangong.aop; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; @Component("logAnnotation") @Aspect //声明该类是一个通知 public class LogAspectAnnotation { //声明该方法是前置通知 @Before("execution(public void org.ruangong.service.StudentServiceImpl.addStudent(org.ruangong.entity.Student))") public void myBefore(){ System.out.println("《注解实现前置通知...》"); } //声明该方法是后置通知 @AfterReturning("execution(public void org.ruangong.service.StudentServiceImpl.addStudent(org.ruangong.entity.Student))") public void myAfter(){ System.out.println("《注解实现后置通知...》"); } }
@Component相当于将该通知类放入到ioc容器,=<bean id="logAnnotation" class="org.ruangong.Log.LogAspectAnnotation"></bean>
二、配置连接线
在applicationContext.xml文件的开头添加注解对AOP的支持:
<!-- 开启注解对AOP的支持 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
此时不需要在连线了。因为使用注解实现通知,需要在xml文件中开启扫描文件。
运行测试类:
@Aspect不需要加入扫描器,只需要开启注解对aop的支持就完了。