Jak wstrzykujecie zależności w Springu?

0

Jak wstrzykujecie zależności w Springu? Używacie adnotację np. @Service w klasie, którą chcecie wstrzyknąć czy macie klasy z adnotacją @Configuration a w niej metody oznaczone @Bean, które zwracają instancję danej klasy? Wiem, że to drugie podejście jest zgodne z clean architecture, bo wtedy te Springowe konfigurację do wstrzykiwania zależności są w warstwie infrastruktury i nie przeciekają nigdzie indziej, ale z drugiej strony to sporo dodatkowego kodu.

0

A jeżeli rozwijam wiele aplikacji, gdzie stosowane są różne podejścia, to co mam zaznaczyć? ;)

W drugim podejściu powstaje sporo kodu, ale dzięki temu można programistycznie podstawić jakieś fejkowe/testowe implementacje bez potrzeby hakowania component scana. Sprawdzało się przy hexagonie.

3

@Configuration, dzięki czemu reszta kodu nawet nie wie ze gdzieśtam pod spodem jest Spring. Moduł domain w aplikacji nie ma żadnej zależności od Springa.

0

Tylko i wyłącznie @Configuration. Wystarczy stracić ze 4 godziny na np. debuggowaniu czemu XML niepoprawnie się parsuje, aby okazalo się, że jakaś zewnętrzna libka (np. Swagger) ma pod spodem @Bean na objectmappera, który jest strasznie dziwacznie skonfigurowany.

Spring ma już wystarczająco za dużo magi. Z resztą takie konfiguracje per moduł super pokazują co tam się faktycznie dzieje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.