當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot-AOP切面处理
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot-AOP切面处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
? ? 應用Spring的過程中,最大最核心的必須要數AOP啦,比如,向同一水平面上的相同業務操作,我們就可以使用AOP來完成,快速方便,簡單安全;如攔截,驗證,或者SpringMVC中的事物AOP配置等等..,
? ? 1: 首先引入jar包
<dependency><!-- AOP面向切面 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>? ? 2: 編寫切面類
package com.gy.demo.common.aspect;import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;/*** Description: HTTP請求攔截* 面向切面: AOP* 注解: @Component : 將類注入到Spring容器中;* 注解: @Aspect : 聲明AOP處理* 注解: @Pointcut : 聲明攔截地址* 注解: @Before : 在Value中的方法 之前 都進行攔截* 注解: @After : 在Value中的方法 之后 都進行攔截* 注解: @AfterReturning : 在Value中的方法 之后 都進行攔截,并獲取返回的數據* @author geYang* @since 2017/12/28**/ @Aspect @Component public class HttpAspect {private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class);@Pointcut("execution(public * com.gy.demo.controller.*.*.*(..))")public void logger(){}@Before("logger()")public void doBefore(JoinPoint joinPoint){ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = servletRequestAttributes.getRequest();//iplogger.info("user_ip={}",request.getRemoteAddr());//urllogger.info("request_url={}",request.getRequestURL());//methodlogger.info("request_method={}",request.getMethod());//類方法logger.info("class_method={}",joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName());//參數logger.info("request_param={}",joinPoint.getArgs());}@After("logger()")public void doAfter(){logger.info("出來了");}@AfterReturning(returning = "object",pointcut = "logger()")public void doAfterReturning(Object object){logger.info("response={}",object==null?null:object.toString());}}? ? 啟動項目,訪問Controller就會看到攔截信息;
? ? 參考:?https://www.imooc.com/video/14341
? ? 項目源碼:?https://gitee.com/ge.yang/SpringBoot
轉載于:https://my.oschina.net/u/3681868/blog/1595947
總結
以上是生活随笔為你收集整理的SpringBoot-AOP切面处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: viewport,html,body在p
- 下一篇: 父页面与子ifream传值,父页面获取子