面向切面编程的基本实现
- 在项目中导入必要的jar包
- 打开配置文件,引入aop命名空间
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
- 启动Aspectj支持
<aop:aspectj-autoproxy/>
- 创建切面Bean
@Aspect
public class AopTest {}
- 定义切入点
@Pointcut("execution(* com.langsin.vo.Axe.work(..))")
public void myPointCut(){}
- 需要在配置文件中创建过滤器
在Spring框架中启动AspectJ之后,因为沿用了AspectJ的表达式,所以在Spring容器中需要对AspectJ的表达式语句进行一个过滤处理,可以通过使用context命名空间下的context:include标签进行一个过滤处理,处理类仍然是AspectJ框架的中org.aspectj.lang.annotataion.Aspect类。
<context:component-scan base-package="com.langsin.vo">
<context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
</context:component-scan>
- Before增强处理
@Before("myPointCut()")
public void beforeTest(){
System.out.println("在目标方法执行之前,进行before增强处理");
}
- After增强处理
@After("myPointCut()")
public void afterTest(){
System.out.println("在目标方法执行之后,进行before增强处理");
}