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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring order_Spring @Order批注

發布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring order_Spring @Order批注 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring order

介紹:

Spring @Order注釋是在Spring 2.0中首次引入的。 然后,它僅用于定義AspectJ建議中的順序。 在Spring 4.0的后面,對該注釋的實現進行了進一步改進。 從那時起,它還支持對Java數組或List之類的集合中的Spring組件或bean進行排序。

對于基于Spring XML的應用程序,此批注在內部使用OrderComparator類,對于基于注釋的Spring應用程序,此批注使用AnnotationAwareOrderComparator 。

在本教程中,我們將探討如何使用此批注。

Spring

Spring @Order批注僅接受一個可選參數value ,該參數確定組件的順序:

@Retention(value=RUNTIME) @Target(value={TYPE,METHOD,FIELD}) @Documented public @interface Order

此參數的值越低,其優先級越高。 換句話說,值較低的將在Java List或數組中排在第一位。

此參數默認值為Ordered。 LOWEST_PRECEDENCE 。 這意味著標記的組件在所有有序Bean中的優先級最低。 同樣,我們可以使用Ordered.HIGHEST_PRECEDENCE標記具有最高優先級的Spring bean。

為什么使用?

@Order批注的一些常見用例包括:

  • 在AspectJ中訂購建議; 最初引入它的真正意圖
  • 當我們想要定義加載CommandLineRunner或ApplicationRunner類的順序時
  • 用于以有序方式在Java數組或List中注入bean 列表
  • 在Spring Security的情況下定義過濾器執行的順序

設置示例:

假設我們有一個Vehicle界面:

public interface Vehicle {public String getDetails(); }

我們定義了一些實現類:

@Order(1) @Component public class Bike implements Vehicle {public String getDetails() {return "Bike: 2 Wheeler";} }@Order(2) @Component public class Car implements Vehicle {public String getDetails() {return "Car: 4 Wheeler";} }@Order(3) @Component public class Truck implements Vehicle {public String getDetails() {return "Truck: 6 Wheeler";} }

在這里,我們已經訂購了所有這三個Spring組件。 自行車豆的優先權最高,其次是汽車 ,其次是卡車 。

測試我們的實施:

讓我們快速編寫一個Junit來看看它是如何工作的:

@RunWith(SpringRunner.class) @SpringBootTest public class SampleAppTest {@Autowiredprivate List<Vehicle> vehicles;@Testpublic void testSpringOrderAnnotation() {assertThat(vehicles.get(0).getDetails(), isEqual("Bike: 2 Wheeler"));assertThat(vehicles.get(1).getDetails(), isEqual("Car: 4 Wheeler"));assertThat(vehicles.get(2).getDetails(), isEqual("Truck: 6 Wheeler"));} }

顯然, Spring根據其優先級將我們的bean自動連接到了車輛 Java List中 。

結論

在本微型教程中,我們探討了Spring @Order批注的用法。

翻譯自: https://www.javacodegeeks.com/2019/09/spring-order-annotation.html

spring order

總結

以上是生活随笔為你收集整理的spring order_Spring @Order批注的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。