關於springboot項目AOP切面不起作用


 首先先檢查自己是否添加了依賴,這個賊坑

<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>




其次 boot啟動類添加 aspect 自動代理以及包的掃描
@SpringBootApplication
@ComponentScan("com.example.demo.*")
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}

}


@Target(value = ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface syslog {
}


@Aspect
@Component
@Slf4j
public class SysAspect {

@Pointcut("@annotation(com.example.demo.utils.commons.syslog)")
public void cutPoint(){}

@AfterReturning("cutPoint()")
public void sysNotic(JoinPoint joinPoint){
log.info("嗚嗚嗚嗚嗚嗚嗚"+joinPoint.toString());
System.out.println("后");
}


}
 
@syslog
@RequestMapping(value = "/controller",method = RequestMethod.GET)
public int controller() throws NoSuchFieldException {
System.out.println("進入方法了!");
return 1;
}


最后打印結果
進入方法了!
2019-09-20 15:18:13.409  INFO 8064 --- [nio-8080-exec-1] c.example.demo.utils.commons.SysAspect   : 嗚嗚嗚嗚嗚嗚嗚execution(int com.example.demo.controller.diyAnnotationController.controller())



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM