@Naruči u proljeće

1. Pregled

U ovom uputstvu naučit ćemo o Springu @Narudžba bilješka. The @Narudžba anotacija definira redoslijed sortiranja komentirane komponente ili graha.

Ima neobavezni argument vrijednosti koji određuje redoslijed komponente; zadana vrijednost je Naručeno.LOWEST_PRECEDENCE. To označava da komponenta ima najmanji prioritet među svim ostalim uređenim komponentama.

Slično tome, vrijednost Naručeno.HIGHEST_PRECEDENCE može se koristiti za nadjačavanje najvišeg prioriteta među komponentama.

2. Kada koristiti @Narudžba

Prije proljeća 4.0 @Narudžba napomena je korištena samo za nalog izvršenja AspectJ. To znači da će se prvo uputiti savjeti najvišeg reda.

Od proljeća 4.0 podržava redoslijed ubrizgavanja komponenata u zbirku. Kao rezultat toga, Spring će ubrizgati automatski ožičeni grah iste vrste na temelju vrijednosti narudžbe.

Istražimo to na brzom primjeru.

3. Kako koristiti @Narudžba

Prije svega, postavimo svoj projekt s relevantnim sučeljem i klasama.

3.1. Izrada sučelja

Stvorimo Ocjena sučelje koje određuje ocjenu proizvoda:

ocjena javnog sučelja {int getRating (); }

3.2. Izrada komponenata

Na kraju, kreirajmo tri komponente koje definiraju ocjene nekih proizvoda:

@Component @Order (1) javna klasa Izvrsna implementira Ocjena {@Override public int getRating () {return 1; }} @Component @Order (2) javna klasa Dobre implementacije Ocjena {@Override public int getRating () {return 2; }} @Component @Order (Ordered.LOWEST_PRECEDENCE) prosjek javnih klasa Ocjena {@Override public int getRating () {return 3; }}

Imajte na umu da Prosječno klasa ima najmanji prioritet zbog svoje nadjačane vrijednosti.

4. Testiranje našeg primjera

Do sada smo stvorili sve potrebne komponente i sučelje za testiranje @Narudžba bilješka. Ajmo sada testirati kako bismo potvrdili da radi kako se očekivalo:

javna klasa RatingRetrieverUnitTest {@Autowired privatne ocjene popisa; @Test javna praznina givenOrder_whenInjected_thenByOrderValue () {assertThat (ratings.get (0) .getRating (), je (jednakTo (1))); assertThat (ratings.get (1) .getRating (), je (jednakTo (2))); assertThat (ratings.get (2) .getRating (), je (jednakTo (3))); }}

5. Zaključak

Saznali smo o @Narudžba napomena u ovom brzom članku. Možemo pronaći primjenu @Narudžba u raznim slučajevima upotrebe - gdje je bitan redoslijed automatski ožičenih komponenata. Jedan od primjera su proljetni filtri zahtjeva.

Zbog utjecaja na prednost ubrizgavanja, može se činiti da bi to moglo utjecati i na redoslijed pokretanja pojedinca. Ali za razliku od njih, odnosi ovisnosti i @Ovisi o deklaracije određuju redoslijed pokretanja pojedinca.

Svi primjeri spomenuti u ovom vodiču mogu se naći na Githubu.


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