У меня возникли проблемы с инъекцией в приложении, над которым я работаю (с использованием Spring Version 3.1.2). Начнем с того, что я вижу много кода, как это:Spring: @Value vs. @Autowired
@Value("#{searchRequestBean}")
private SearchRequest searchRequest;
@Value("#{searchResponseBean}")
private SearchResponse searchResponse;
@Autowired
private SavedSearchService service;
Каждый из этих трех, как представляется, имеют эффект автоматического связывания указанного боб/услугу в классе. Я не понимаю, какая разница между @Value
и @Autowired
в этих случаях? Каждый пример, который я нашел в Интернете, как представляется, использует @Value
для ввода значений из файла свойств. В этом случае SearchResponse
и SearchRequest
являются абстрактными классами.
Я надеюсь, что лучшее понимание этого поможет мне решить некоторые проблемы, которые у меня возникают с моим сеансом.
спасибо за ясный, лаконичный ответ! Моя реальная проблема заключается в том, что я вижу неправильный сеансовый компонент, доступный из моего класса, - мы все еще работаем, чтобы найти причину. Похоже, использование '@ Value' вместо' @ Autowired' не является причиной, хотя мы думаем, что это проблема Spring. –