@Rendelés tavasszal

1. Áttekintés

Ebben az oktatóanyagban megismerhetjük a Spring programot @Rendelés annotáció. A @Rendelés az annotáció meghatározza a jegyzetelt komponens vagy bab rendezési sorrendjét.

Van egy opcionális érték argumentuma, amely meghatározza az összetevő sorrendjét; az alapértelmezett érték Rendelt.LOWEST_PRECEDENCE. Ez azt jelzi, hogy a komponens a legkevesebb prioritással rendelkezik az összes többi rendezett komponens között.

Hasonlóképpen az érték Rendelt.HIGHEST_PRECEDENCE használható a komponensek közül a legnagyobb prioritás felülbírálására.

2. Mikor kell használni @Rendelés

A 4.0 tavasz előtt a @Rendelés az annotációt csak az AspectJ végrehajtási utasításhoz használták. Ez azt jelenti, hogy a legmagasabb rendű tanácsok futnak először.

A 4.0 tavasz óta támogatja az injektált alkatrészek gyűjtésbe rendezését. Ennek eredményeként a Spring az azonos típusú automatikus vezetékes babokat fogja beinjekciózni rendelési értékük alapján.

Fedezzük fel egy gyors példával.

3. Hogyan kell használni @Rendelés

Először állítsuk be projektünket a megfelelő interfésszel és osztályokkal.

3.1. Interfész létrehozása

Hozzuk létre a Értékelés felület, amely meghatározza a termék minősítését:

nyilvános felület Értékelése {int getRating (); }

3.2. Alkatrészek létrehozása

Végül hozzunk létre három összetevőt, amelyek meghatározzák egyes termékek minősítését:

@Component @Order (1) public class Kiválóan teljesíti a minősítést {@Orride public int getRating () {return 1; }} @Component @Order (2) public class Good implements Rating {@Orride public int getRating () {return 2; }} @Component @Order (Rendezve.LOWEST_PRECEDENCE) nyilvános osztály Végrehajtási átlagértékelés {@Orride public int getRating () {return 3; }}

Vegye figyelembe, hogy a Átlagos osztálynak van a legalacsonyabb prioritása felülbírált értéke miatt.

4. Példánk tesztelése

Eddig létrehoztuk az összes szükséges összetevőt és az interfészt a teszteléséhez @Rendelés annotáció. Most teszteljük, hogy megerősítsük-e, hogy a várt módon működik:

public class RatingRetrieverUnitTest {@Autowired private List értékelések; @Test public void givenOrder_whenInjected_thenByOrderValue () {assertThat (ratings.get (0) .getRating (), is (egyenlőTo (1))); assertThat (rating.get (1) .getRating (), is (egyenlőTo (2))); assertThat (rating.get (2) .getRating (), is (egyenlőTo (3))); }}

5. Következtetés

Megtudtuk a @Rendelés annotáció ebben a gyors cikkben. Megtalálhatjuk a @Rendelés különféle felhasználási esetekben - amikor az automatikus vezetékes alkatrészek sorrendje számít. Ilyen például a tavaszi kérésszűrők.

Az injekciós elsőbbségre gyakorolt ​​hatása miatt úgy tűnhet, hogy befolyásolhatja a szingulett indítási sorrendet is. De ezzel szemben a függőségi kapcsolatok és @Attól függ deklarációk határozzák meg a szingleton indítási sorrendet.

Az ebben az oktatóanyagban említett összes példa megtalálható a Github oldalon.


$config[zx-auto] not found$config[zx-overlay] not found