Пружинный конструктор впрыска
Можно ли построить объект вручную и позволить 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" ) );