首先创建一个类NotVeryUserfulAspect 作为切面,写好切点和通知,这里我们使用前置通知测试。
@Component
@Aspect
public class NotVeryUserfulAspect {
@Pointcut("within(com.xufuxin.spring.entity.A)")
public void pointCut(){}
@Before("pointCut()")
public void doBefore(){
System.out.println("这是前置通知!");
}
}
切入点如下
@Component
@Data
public class A{
public void testProxy(){
System.out.println("logic");
}
}
配置类添加注解@EnableAspectJAutoProxy,以开启AspectJ自动代理
@ComponentScan(basePackages = {"com.xufuxin.spring.entity","com.xufuxin.spring.conf"})
@EnableAspectJAutoProxy
public class AppConfig {
}
运行Bean并运行testProxy方法
public class AnnotationConfigApplocation {
public static void main(String[] args) {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
ac.register(AppConfig.class);
ac.refresh();
A a = ac.getBean(A.class);
a.testProxy();
}
}
查看打印结果
前置通知在logic前打印,说明AOP前置通知已生效。