spring学习 十三 注解AOP
2021-05-19 15:31
标签:声明 package strong air Plan exec npoi port bean spring 不会自动去寻找注解,必须告诉 spring 哪些包下的类中可能有注解,也就是要开启注解扫描,注解的包是spring-context.jar,所以在配置文件中还要引入context约束,也就是引入 xmlns:context命名空间 第一步开始注解,base-package的属性值指定哪些包下可能有注解,多个包用逗号隔开,也可以采用通配符进行配置 第二步:对要注册到spring器的类打上注解,例如@Service,@Component等 @Component 相当于 我们对通知类,以及切点所在的类要打上注解 通知类:@Aspect 相当于表示通知方法在当前类中, @Before("com.bjsxt.test.Demo.demo1()")注解代表当前方法是前置通知,@Before注解中的值时切点的全路径 spring学习 十三 注解AOP 标签:声明 package strong air Plan exec npoi port bean 原文地址:https://www.cnblogs.com/cplinux/p/9742096.html
context:component-scan base-package="com.airplan.pojo,com.airplan.bean">context:component-scan>
aop:aspectj-autoproxy proxy-target-class="true">aop:aspectj-autoproxy>
切点类:在方法上添加@Pointcut(“”) 定义切点package com.airplan.pojo;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Component("pointCutClass")
public class PointCutClass {
/**
* 声明切点
* @param name01
*/
@Pointcut("execution(* com.airplan.pojo.PointCutClass.*(..))")
public void pointCutFun() {
System.out.println("切点执行");
}
}
package com.airplan.pojo;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Component("advice")
@Aspect
public class Advice {
@Before("com.airplan.pojo.PointCutClass.pointCutFun()")
public void mybefore(String name){
System.out.println("前置"+name );
System.out.println("before");
}
}
上一篇:python——描述符
下一篇:js06 省市联动案例