Spring-boot 配置Aop獲取controller里的request中的參數以及其返回值


Spring-boot 配置Aop獲取controller里的request中的參數以及其返回值

首先在你的Maven的pom文件里加入aop的依賴:

  <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>

在spring boot里面一切配置都是很簡單的,下面為我所有被請求到的controller加上Aop的功能吧,看碼:

package me.jiaobuchong.admin.config; import javax.servlet.http.HttpServletRequest; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.google.gson.Gson; import org.slf4j.Logger; import org.slf4j.LoggerFactory;; /** * Created by jiaobuchong on 12/23/15. */ @Aspect //定義一個切面 @Configuration public class LogRecordAspect { private static final Logger logger = LoggerFactory.getLogger(UserInterceptor.class); // 定義切點Pointcut @Pointcut("execution(* com.jiaobuchong.web.*Controller.*(..))") public void excudeService() { } @Around("excudeService()") public Object doAround(ProceedingJoinPoint pjp) throws Throwable { RequestAttributes ra = RequestContextHolder.getRequestAttributes(); ServletRequestAttributes sra = (ServletRequestAttributes) ra; HttpServletRequest request = sra.getRequest(); String url = request.getRequestURL().toString(); String method = request.getMethod(); String uri = request.getRequestURI(); String queryString = request.getQueryString(); logger.info("請求開始, 各個參數, url: {}, method: {}, uri: {}, params: {}", url, method, uri, queryString); // result的值就是被攔截方法的返回值 Object result = pjp.proceed(); Gson gson = new Gson(); logger.info("請求結束,controller的返回值是 " + gson.toJson(result)); return result; } }

只要加上上面這個類,Aop就算配置好了,不信,去訪問以下你的Controller試試。對比以前配置aop的方式(xml文件),現在的配置都到Java代碼里來了,@Configuration這個Annotation就是JavaConfig的典型代表,Spring boot在啟動時會會自動去加載這些配置,實現相應的配置功能。這個簡單的小例子算是拋磚引玉吧,我也是參考別人的博客,更多細節,查看下面的博客: 
http://ysj5125094.iteye.com/blog/2151855

http://blog.csdn.net/jiaobuchong/article/details/50420379


免責聲明!

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



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