@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.