希望在controller執(zhí)行完成后,記錄一下這個(gè)接口的調(diào)用信息
如下實(shí)現(xiàn)請(qǐng)求到如下接口后,會(huì)執(zhí)行SubscribeAop.java中的 recordLog()方法
如果要實(shí)現(xiàn)在進(jìn)入Controller.subscribe()之前執(zhí)行某個(gè)方法,可以使用@ModelAttribute注解,使用方法自行g(shù)oogle
- Controller.java
@GetMapping("/")
public String subscribe(String accessToken, HttpServletRequest request) {
return "SUCCESS";
}
- SubscribeAop.java
@Aspect
@Component
public class SubscribeAop {
// 對(duì)以下com.web.controller.Controller類中的所有方法進(jìn)行切入
@Pointcut("execution(public * com.web.controller.Controller.*(..))")
private void method(){
}
// @After("method() && args(jsonData ,request)")
// public void recordLog(String jsonData ,HttpServletRequest request){
@After("method()") // 使用上面定義的切入點(diǎn)
public void recordLog(){
// 這里記錄日志 , 這里處理的內(nèi)容會(huì)切入controller中
}
}
- pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
- application.properties
spring.aop.auto=true
參考: