@Komponens vs @Repository és @Service tavasszal
1. Bemutatkozás
Ebben a gyors bemutatóban megismerjük a különbségeket @Component, @Repository, @Service a tavaszi keretben.
2. Tavaszi kommentárok
A legtöbb tipikus alkalmazásban különálló rétegeink vannak, mint például az adatokhoz való hozzáférés, a prezentáció, a szolgáltatás, az üzlet stb.
És minden rétegben különféle babunk van. Egyszerűen fogalmazva, hogy automatikusan észlelje őket, Spring az osztályútvonal szkenneléshez tartozó jegyzeteket használja.
Ezután minden babot bejegyez a ApplicationContext.
Íme egy rövid áttekintés ezekből a feljegyzésekből:
- @Összetevő egy általános sztereotípia minden Spring által kezelt komponenshez
- @Szolgáltatás feljegyzi az osztályokat a szolgáltatási rétegben
- @Raktár osztályokat jegyzetel a perzisztencia rétegnél, amelyek adatbázis-tárolóként fognak működni
Már van egy kiterjesztett cikkünk ezekről a kommentárokról. Tehát csak a közöttük lévő különbségekre összpontosítunk.
3. Mi a különbség?
A legnagyobb különbség e sztereotípiák között az, hogy különböző osztályozásra használják őket. Amikor feljegyezünk egy osztályt az automatikus detektáláshoz, akkor a megfelelő sztereotípiát kell használnunk.
Most nézzük át őket részletesebben.
3.1. @Összetevő
A @Component alkalmazást az alkalmazás egészében használhatjuk a bab megjelölésére Spring által felügyelt komponensként. A tavasz csak a babot veszi fel és regisztrálja @Összetevő és nem keresi @Szolgáltatás és @Raktár általánosságban.
Ban vannak bejegyezve ApplicationContext mert magukkal vannak jelölve @Összetevő:
@Component public @interface Service {}
@Component public @interface Repository {}
@Szolgáltatás és @Raktár speciális esetei @Összetevő. Műszakilag megegyeznek, de különböző célokra használjuk őket.
3.2. @Raktár
@RaktárFeladata a kitartásspecifikus kivételek felfogása és újbóli megismertetése Spring egyik nem ellenőrzött kivételének egyikeként.
Erre a tavasz biztosítja PersistenceExceptionTranslationPostProcessor, amelyhez hozzá kell adni az alkalmazási környezetünket:
Ez a bab utáni feldolgozó hozzáad egy tanácsadót minden babhoz, amelyhez jegyzeteket fűznek @Raktár.
3.3. @Szolgáltatás
A babot a @Service szolgáltatással jelöljük, jelezve, hogy az üzleti logikát tartja fenn. Tehát nincs más különlegesség, csak a szolgáltatási rétegben történő felhasználás.
4. Következtetés
Ebben az írásban megismerhettük a különbségeket @Component, @Repository, @Service annotációk. Minden egyes annotációt külön megvizsgáltunk felhasználásuk területeivel.
Összegzésként elmondható, hogy mindig jó ötlet az annotációt rétegegyezményeik alapján választani.