Рекомендуется делать переменные класса final , когда это возможно. Вот почему я предпочитаю использовать автоматическую разводку на основе конструктора:
...
private final MyService myService;
@Autowired
public MyClass(MyService myService){
this.myService = myService;
}
...
Таким образом, все внедренные зависимости можно просматривать в одном месте (конструктор), и гарантируется, что все эти переменные инициализируются после того, как класс был создан.
Редактировать : Как уже упоминалось в комментариях, вам не нужна аннотация @Autowired
для одного конструктора начиная с Spring 4.3