AOP开发入门

JAVA

Posted by hukss on January 5, 2023

AOP开发入门

  1. 在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>
    
  2. 定义接口和实现类
    @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");
    
     }
    }
    
  3. 定义通知类(通知类里面定义通知(要新增功能部分的一个方法)和切入点)
@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());
    }

}
  1. 在spring配置类中使用注解@EnableAspectJAutoProxy
    @EnableAspectJAutoProxy
    public class SpringConfig {
    }