日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot-AOP切面处理

發(fā)布時間:2024/4/14 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot-AOP切面处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

? ? 應(yīng)用Spring的過程中,最大最核心的必須要數(shù)AOP啦,比如,向同一水平面上的相同業(yè)務(wù)操作,我們就可以使用AOP來完成,快速方便,簡單安全;如攔截,驗(yàn)證,或者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中的方法 之前 都進(jìn)行攔截* 注解: @After : 在Value中的方法 之后 都進(jìn)行攔截* 注解: @AfterReturning : 在Value中的方法 之后 都進(jìn)行攔截,并獲取返回的數(shù)據(jù)* @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());//參數(shù)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());}}

? ? 啟動項(xiàng)目,訪問Controller就會看到攔截信息;

? ? 參考:?https://www.imooc.com/video/14341

? ? 項(xiàng)目源碼:?https://gitee.com/ge.yang/SpringBoot

轉(zhuǎn)載于:https://my.oschina.net/u/3681868/blog/1595947

總結(jié)

以上是生活随笔為你收集整理的SpringBoot-AOP切面处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。