Пружинный конструктор впрыска

Можно ли построить объект вручную и позволить Spring добавить некоторые другие аргументы?

например

 class A 
 @Autowired
 private SomeDao dao;
 A(String x, String y) {}

3 ответа

Ваш пример использует инжекцию поля, а не конструктор.

Как правило, лучше всего использовать JavaConfig. Ваш @Bean методы могут принимать параметры (которые Spring будет автоматически связывать), которые вы можете комбинировать с другими параметрами при вызове new,

Может быть, org.springframework.web.context.support.SpringBeanAutowiringSupport класс это то, что вы ищете, попробуйте вызвать:

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

Вы можете использовать autowireBean из AutowireCapableBeanFactory. Учитывая ваш applicationContext, вы вызываете getAutowireCapableBeanFactory(), а затем автоматически подключаете свой экземпляр:

applicationContext.getAutowireCapableBeanFactory().autowireBean( new A("x", "y" ) );
Другие вопросы по тегам