实现AOP功能的框架主要有Spring AOP和AspectJ,前者只能对方法进行创建joincut,而后者不仅可以对方法,还可以对字段和构造器创建joincut。
一、注解配置AOP。
public class Test {
public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Aspect1.class);
UserService userService = (UserService) applicationContext.getBean("userServiceImpl");
userService.hello("cj");
}
}
@Configuration //相当于创建xml配置文件
@EnableAspectJAutoProxy //开启自动代理,默认是基于接口的jdk动态代理
@ComponentScan(basePackages = "com.cj")
@Aspect //定义切面
public class Aspect1 {
@Pointcut("execution(* com.cj.*.*(..))")//切入点表达式
public void a() {//切入点签名
}
@Before("a()")
public void b() {
System.out.println("Before");
}
@AfterReturning("a()")
public void