最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot學習入門之AOP處理請求詳解

 更新時間:2017年09月04日 09:12:56   作者:a60782885  
AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù),下面這篇文章主要給大家介紹了關于Spring Boot學習入門之AOP處理請求的相關資料,需要的朋友可以參考下。

前言

面向切面(AOP)Aspect Oriented Programming是一種編程范式,與語言無關,是一種程序設計思想,它也是spring的兩大核心之一。

在spring Boot中,如何用AOP實現(xiàn)攔截器呢?

首先加入依賴關系:

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

希望截攔如下Controller:

@RestController 
public class MyController { 
 
  
 @RequestMapping(value="/hello", method=RequestMethod.GET) 
 public String hello() { 
  return ""; 
 } 
  
} 

首先要創(chuàng)建一個攔截類:RequestInterceptor

并且使用@Aspect和@Component標注這個類:

@Component 
@Aspect 
public class RequestInterceptor { 
  
 @Pointcut("execution(* com.example.controller.*.*(..))") 
 public void pointcut1() {} 
  
 @Before("pointcut1()") 
 public void doBefore() { 
  System.out.println("before"); 
 } 
  
 @Around("pointcut1()") 
 public void around(ProceedingJoinPoint thisJoinPoint) throws Throwable { 
  System.out.println("around1"); 
  thisJoinPoint.proceed(); 
  System.out.println("around2"); 
 } 
  
 @After("pointcut1()") 
 public void after(JoinPoint joinPoint) { 
  System.out.println("after"); 
 } 
  
 @AfterReturning("pointcut1()") 
 public void afterReturning(JoinPoint joinPoint) { 
  System.out.println("afterReturning"); 
 } 
  
 @AfterThrowing("pointcut1()") 
 public void afterThrowing(JoinPoint joinPoint) { 
  System.out.println("afterThrowing"); 
 } 
  
} 

只需要使用@Before,@After等注解就非常輕松的實現(xiàn)截攔功能。

這里需要處理請求,所以我們需要在攔截器中獲取請求。

只需要在方法體中使用:

ServletRequestAttributes attributes =(ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); 
HttpServletRequest request = attributes.getRequest(); 

就可以獲取到request。

同理也可以在After等方法中獲取response。

獲取request之后,就可以通過request獲取url,ip等信息。

如果我們想要獲取當前正在攔截的方法的信息??梢允褂肑oinPoint。

例如:

@After("pointcut1()") 
public void after(JoinPoint joinPoint) { 
 logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName()+ "." + joinPoint.getSignature().getName()); 
 System.out.println("after"); 
} 

就可以獲取包名,類名,方法名。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Java KindEditor粘貼圖片自動上傳到服務器功能實現(xiàn)

    Java KindEditor粘貼圖片自動上傳到服務器功能實現(xiàn)

    這篇文章主要介紹了Java KindEditor粘貼圖片自動上傳到服務器功能實現(xiàn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 在Elasticsearch中添加字段的詳細步驟

    在Elasticsearch中添加字段的詳細步驟

    在ES中,增加字段相對比較容易,因為ES支持動態(tài)映射(Dynamic Mapping),這篇文章主要給大家介紹了關于在Elasticsearch中添加字段的詳細步驟,文中給出了詳細的代碼實例,需要的朋友可以參考下
    2024-07-07
  • IDEA錯誤:找不到或無法加載主類的完美解決方法

    IDEA錯誤:找不到或無法加載主類的完美解決方法

    使用IDEA開始就一直在搭建java環(huán)境,許久沒有使用過java,剛開始有些生疏,先建了一個最簡單的類可是運行的時候出現(xiàn)錯誤:找不到或無法加載主類,下面這篇文章主要給大家介紹了關于IDEA錯誤:找不到或無法加載主類的完美解決方法,需要的朋友可以參考下
    2022-07-07
  • 深度理解SpringMVC中的HandlerMapping

    深度理解SpringMVC中的HandlerMapping

    這篇文章主要介紹了深度理解SpringMVC中的HandlerMapping,HandlerMapping的作用根據(jù)request找到對應的處理器Handler,在HandlerMapping接口中有一個唯一的方法getHanler,需要的朋友可以參考下
    2023-09-09
  • Java static方法用法實戰(zhàn)案例總結(jié)

    Java static方法用法實戰(zhàn)案例總結(jié)

    這篇文章主要介紹了Java static方法用法,結(jié)合具體案例形式總結(jié)分析了java static方法功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Spring使用RestTemplate和Junit單元測試的注意事項

    Spring使用RestTemplate和Junit單元測試的注意事項

    這篇文章主要介紹了Spring使用RestTemplate和Junit單元測試的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 多線程下嵌套異步任務導致程序假死問題

    多線程下嵌套異步任務導致程序假死問題

    這篇文章主要介紹了多線程下嵌套異步任務導致程序假死問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 深入理解Hibernate中的flush機制

    深入理解Hibernate中的flush機制

    這篇文章主要介紹了深入理解Hibernate中的flush機制,本文是對flush機制深入研究得出的一些結(jié)論總結(jié),需要的朋友可以參考下
    2015-01-01
  • 簡單總結(jié)Java的反射機制的運用

    簡單總結(jié)Java的反射機制的運用

    這篇文章主要介紹了Java的反射機制的運用,對一些常用的類作了一些說明,需要的朋友可以參考下
    2015-11-11
  • BMIDE環(huán)境導入項目報編碼錯誤解決方案

    BMIDE環(huán)境導入項目報編碼錯誤解決方案

    這篇文章主要介紹了BMIDE環(huán)境導入項目報編碼錯誤解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10

最新評論

蕉岭县| 全椒县| 庆城县| 平顺县| 田阳县| 五寨县| 洞头县| 南平市| 巨野县| 永新县| 林口县| 应用必备| 景洪市| 盖州市| 嫩江县| 广宗县| 青岛市| 介休市| 新巴尔虎右旗| 通州市| 象山县| 赤城县| 浦北县| 通榆县| 田东县| 西宁市| 贵港市| 启东市| 宜兰县| 长葛市| 温州市| 马山县| 五家渠市| 博兴县| 武陟县| 裕民县| 安吉县| 德阳市| 崇州市| 黔东| 扬州市|