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?
Spring @Autowired na konstruktorze.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 9
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 3573
1
Przede wszystkim - po co zaśmiecać kod? :)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Stacktrace
- Postów: 6822
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.