欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringAop攔截參數(shù)帶注解的方法

 更新時間:2024年12月20日 11:37:00   作者:假女吖?  
這篇文章主要介紹了SpringAop攔截參數(shù)帶注解的方法,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧

SpringAop攔截參數(shù)帶注解的方法

攔截方法中參數(shù)類型為String 且?guī)в?code>@Crypto注解的方法:execution(* *(..,@Crypto (String),..))

攔截方法中參數(shù)上帶有@Crypto注解的方法:execution(* *(..,@Crypto (*),..))

  • ..:零個或者多個
  • *:通配符

樣例

/**
 * 針對帶有@Crypto注解的參數(shù)進行加密
 * @param joinPoint
 * @return
 * @throws Throwable
 */
@Around(value = "execution(* *(..,@Crypto (String),..))")
public Object encrypt(ProceedingJoinPoint joinPoint){}

擴展:Spring常見三種注入方式

Spring常見三種注入方式

1、field注入(字段注入)

@Controller
public class FooController {
   @Autowired
   private FooService fooService;
   //簡單的使用例子,下同
   public List<Foo> listFoo() {
       return fooService.list();
   }
}

最常見的注入方式、注入方式簡單明了,類中定義全局變量,可以使用@Autowired、@Resource、@Inject注解來實現(xiàn)

2、構(gòu)造器注入

@Controller
public class FooController {
   private final FooService fooService;
   public FooController(FooService fooService) {
       this.fooService = fooService;
   }
   //使用方式上同
   public List<Foo> listFoo() {
       return fooService.list();
   }
}

定義final類型變量,并定義一個帶有帶變量的構(gòu)造函數(shù),在構(gòu)造函數(shù)初始化該變量,變量不能是static類型。Spring4.x版本中推薦的注入方式。如果在需要注入的變量很多的情況下,構(gòu)造很熟會很大很影響代碼美觀,所以推薦lombok的注解@RequiredArgsConstructor,該注解作用于類上,可以給當前生成一個構(gòu)造函數(shù),該構(gòu)造函數(shù)的參數(shù)為當前類中被@NotNull注解修飾的變量和final類型的變量。

 3、setter注入

@Controller
 public class FooController {
   private FooService fooService;
   @Autowired
   public void setFooService(FooService fooService) {
       this.fooService = fooService;
  }
  //使用方式上同
  public List<Foo> listFoo() {
      return fooService.list();
  }
 }

定義一個變量,并實現(xiàn)該變量的set方法,set方法需要加上注解@Autowired,Spring3.x剛推出的時候,推薦使用注入的就是這種。改注解的優(yōu)點就是可以在類使用之后重新配置或者重新注入。

構(gòu)造器注入的好處:

構(gòu)造器注入是Spring4.x版本中推薦的注入方式,Spring官方對此也有解釋,翻譯過來就是構(gòu)造器注入的方式啊,能夠保證注入的**依賴不可變**,并且確保需要的**依賴不為空**。此外,構(gòu)造器注入的依賴總是能夠在返回客戶端(組件)代碼的時候保證**完全初始化的狀態(tài)**。

1、依賴不可變:就是變量上final關鍵字的作用。

2、依賴不為空:因為是通過構(gòu)造函數(shù)注入的,Spring容器在實例化的時候會調(diào)用構(gòu)造函數(shù)傳入具體值。

3、完全初始化的狀態(tài):這個可以跟上面的依賴不為空結(jié)合起來,向構(gòu)造器傳參之前,要確保注入的內(nèi)容不為空,那么肯定要調(diào)用依賴組件的構(gòu)造方法完成實例化。而在Java類加載實例化的過程中,構(gòu)造方法是最后一步(之前如果有父類先初始化父類,然后自己的成員變量,最后才是構(gòu)造方法)。所以返回來的都是初始化之后的狀態(tài)。

field注入的缺點:

1、對于IOC容器之外的環(huán)境,會報錯NPE

 FooController fooController = new FooController();
 fooController.listFoo(); //NullPointerException

2、在循環(huán)依賴的場景下,構(gòu)造器注入在項目啟動啟動時會報錯、而field注入的方式啟動時不會報錯,在使用具體的對象時才會報錯

另外,在一個依賴的接口有多個實現(xiàn)類時,推薦使用field注入或者setter注入的方式來指定注入類型。

到此這篇關于SpringAop攔截參數(shù)帶注解的方法的文章就介紹到這了,更多相關SpringAop攔截參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • RabbitMQ的ACK確認機制保障消費端消息的可靠性詳解

    RabbitMQ的ACK確認機制保障消費端消息的可靠性詳解

    這篇文章主要介紹了RabbitMQ的ACK確認機制保障消費端消息的可靠性詳解,簡單來說,就是你必須關閉 RabbitMQ 的自動ack ,可以通過一個 api 來調(diào)用就行,然后每次你自己代碼里確保處理完的時候,再在程序里 ack 一把,需要的朋友可以參考下
    2023-12-12
  • Spring整合Quartz Job以及Spring Task的實現(xiàn)方法

    Spring整合Quartz Job以及Spring Task的實現(xiàn)方法

    下面小編就為大家分享一篇Spring整合Quartz Job以及Spring Task的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • idea在運行期間,實現(xiàn)讓修改的頁面實時生效

    idea在運行期間,實現(xiàn)讓修改的頁面實時生效

    這篇文章主要介紹了idea在運行期間,實現(xiàn)讓修改的頁面實時生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java使用elasticsearch分組進行聚合查詢過程解析

    java使用elasticsearch分組進行聚合查詢過程解析

    這篇文章主要介紹了java使用elasticsearch分組進行聚合查詢過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • springboot攔截器過濾token,并返回結(jié)果及異常處理操作

    springboot攔截器過濾token,并返回結(jié)果及異常處理操作

    這篇文章主要介紹了springboot攔截器過濾token,并返回結(jié)果及異常處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 使用新版Maven-mvnd快速構(gòu)建項目

    使用新版Maven-mvnd快速構(gòu)建項目

    本文主要介紹了使用新版Maven-mvnd來快速構(gòu)建項目,相比于Maven,mvnd可以顯著提高構(gòu)建速度,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • Java實現(xiàn)猜數(shù)字小游戲代碼

    Java實現(xiàn)猜數(shù)字小游戲代碼

    大家好,本篇文章主要講的是Java實現(xiàn)猜數(shù)字小游戲代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java中的鎖分類的詳細介紹

    Java中的鎖分類的詳細介紹

    這篇文章主要介紹了Java中的鎖分類的詳細介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java中@ConditionalOnProperty注解使用

    Java中@ConditionalOnProperty注解使用

    在Spring?Boot中,@ConditionalOnProperty注解是一種方便的工具,用于根據(jù)應用程序配置文件中的屬性值來控制Bean的創(chuàng)建和加載,本文就來介紹一下Java中@ConditionalOnProperty注解使用,感興趣的可以了解一下
    2023-11-11
  • 使用MAT進行JVM內(nèi)存分析實例

    使用MAT進行JVM內(nèi)存分析實例

    這篇文章主要介紹了使用MAT進行JVM內(nèi)存分析實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論