AOP开发入门
- 在maven的pom.xml中导入坐标
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</version> </dependency> </dependencies>
- 定义接口和实现类
@Repository public class BookDaoImpl implements BookDao { @Override public void save() { System.out.println(System.currentTimeMillis()); System.out.println("book dao save"); } @Override public void update() { System.out.println("book dao update"); } }
- 定义通知类(通知类里面定义通知(要新增功能部分的一个方法)和切入点)
@Component
@Aspect
public class MyAdvice {
// 定义切入点
@Pointcut("execution(void com.hukss.dao.BookDao.update())")
private void printTime(){}
//定义通知
@Before("printTime()")
public void method() {
System.out.println(System.currentTimeMillis());
}
}
- 在spring配置类中使用注解@EnableAspectJAutoProxy
@EnableAspectJAutoProxy public class SpringConfig { }