Spring @Autowired na konstruktorze.

0

Od springa 4.3 nie trzeba dodawać adnotacji @Autowired na konstruktorze (jeśli jest jeden w klasie).
Chciałem się zapytać, czy to jakoś poprawia performance aplikacji?
Czy jeśli mamy 20 klas które mają @Autowired na konstruktorze który i tak jest skanowany przez @Service/@Component, to czy to jest jakiś overhead?

1

Przede wszystkim - po co zaśmiecać kod? :)

2

W przypadku springa istotne jest nie to, że masz adnotację @Autowired na konstruktorze, ale to, w jaki sposób wstrzykiwane są beany w przypadku wstrzyknięć przez pola. W praktyce spring sprawdza, ile jest konstruktorów w klasie. Jeżeli jest więcej niż jeden, to dopiero wtedy skanuje, pod kątem adnotacji na konstruktorze.

IMO, nie używaj adnotacji @Component i @Autowired. Zamiast tego użyj ich w pliku konfiguracyjnym. Dzięki temu twój kod będzie pozbawiony referencji do springa. Co prawda będziesz musiał trochę więcej napisać, ale migracje, chociażby do testów, będą bajecznie proste.

0

Nie ma to wpływu na performance, tak czy siak Spring musi przeskanować metody potencjalnego beana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1