AOP开发流程
-
1.spring-boot-starter-aop,加入依赖,默认开启了AOP的支持
-
2.写一个Aspect,封装横切关注点(日志,监控等等),需要配置通知(前置通知,后置通知等等)和切入点(哪些包下的哪些类的哪些方法)
-
3.这个Aspect需要纳入到spring容器管理中,并且需要加@Aspect
简单demo
结构
加入aop依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
dao类:UserDao
package com.lixin.aop.dao;
import org.springframework.stereotype.Component;
@Component //Bean的注入
public class UserDao {
public void add(String username,String password){
System.out.println("add[username: "+username+", password: "+password+"]");
}
}
aspect类:LogAspect
package com.lixin.aop.aspect;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LogAspect {
@Before("execution(* com.lixin.aop.dao..*.*(..))")//方法执行前调用,前置通知
public void log(){
System.out.println("开始记录日志。。。");
}
}
app
@SpringBootApplication
public class AopApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context =SpringApplication.run(AopApplication.class, args);
context.getBean(UserDao.class).add("李鑫","123456");
context.close();
}
}
注:spring.aop.auto配置决定是否启动AOP,默认启动