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?
0
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.