У меня небольшой вопрос. Если класс аннотирован с помощью @ Component, @Service, @Controller или @ Repository и я хочу внедрить его зависимость, нужно ли мне @Autowired?
@RestController
@RequestMapping(value = "/goods", produces = APPLICATION_JSON_VALUE)
@SuppressWarnings("squid:S4684")
public class UserDeviceRestController implements UserDeviceRestApi {
private final UserDeviceService userDeviceService;
public UserDeviceRestController(UserDeviceService userDeviceService) {
this.userDeviceService = userDeviceService;
}
Этот код отлично работает для меня, потому что это аннотация @Service, указанная в UserDeviceService. Это из-за этого?
Если бы у меня был класс без одной из этих аннотаций (выделен жирным шрифтом), я предполагаю, что мне нужно @Autowired это в конструкторе / поле / сеттер, тогда ... Так почему бы не указать @ Компонент выше всех возможных зависимостей внедряет классы и не помнит про @ Autowired
Спасибо за подсказки