できません。 @Autowired
は、コンテキストが初期化された後でのみ機能します。
ですから、このハックを行うことができます。
public class MyListener implements ServletContextListener {
private MyBean myBean;
@Override
public void contextInitialized(ServletContextEvent event) {
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
this.myBean = (MyBean)ctx.getBean("myBean");
}
}
またはよりよい解決策はボリス・スパイダーにTHX次のようになります。
public class MyListener implements ServletContextListener {
@Autowired
private MyBean myBean;
@Override
public void contextInitialized(ServletContextEvent event) {
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
ctx.autowireBean(this);
}
}
出典
2016-09-30 09:01:54
dit
あなたはそれを手動で配線する必要があります。 Springは、Java EEサーバーが行うリスナーを作成しません。あなたは 'ApplicationContext'をどうやって作りますか? [this](http://stackoverflow.com/a/21914004/2071828)を見てください。 –