#java #spring #spring-boot #autowired #spring-annotations
#java #весна #spring-boot #autowired #spring-аннотации
Вопрос:
@Autowired
private EmployeeService employeeService;
против
@Autowired
private EmployeeService employeeService = new EmployeeService();
Отличается ли использование new EmployeeService()
в классе autowired от простого использования new EmployeeService()
?
Ответ №1:
Если вводится компонент for @Autowired
, он переопределяет созданный вами объект. Но если не создан компонент, у вас есть запасной вариант (в данном случае new EmployeeService()
. Это может быть полезно для тестов, но это своего рода антишаблон, потому что обычно вам просто нужно одно из обоих поведений.
Комментарии:
1. Я считаю это анти-шаблоном и для тестов. Даже в тестах, которые вы хотите точно знать, что и где вводится, подобные утверждения скрывают код.