我有一个使用 Wicket 的 Spring 项目。我可以使用 @SpringBean 注释成功地将服务注入(inject) Wicket 组件。
现在,我想访问 Spring Application Context。所以我声明了一个 ApplicationContext 类型的成员变量,并用 @SpringBean 注释它,就像其他服务一样:
尝试使用@SpringBean注入(inject)应用
public class MyPanel extends Panel {
@SpringBean
private ApplicationContext applicationContext;
...
}
然而,在运行时,这给出了错误
bean of type [org.springframework.context.ApplicationContext] not found
难道不能将 ApplicationContext 注入(inject)到 Wicket 组件中吗?如果是这样,什么是访问 ApplicationContext 的合适方法?
最佳答案
ApplicationContext 应该可以在您的应用程序类中访问。
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
在您的应用程序类中创建一个 getApplicationContext 方法。
public class MyApplication extends WebApplication {
public ApplicationContext getAppCtx() {
return WebApplicationContextUtils.getWebApplicationContext(servletContext);
}
}
可以从任何 wicket 组件访问应用程序对象。
public class MyPanel extends Panel {
public MyPanel(String id) {
...
ApplicationContext appCtx = ((MyApplication) getApplication()).getAppCtx();
...
}
}
关于java - 使用@SpringBean 将 ApplicationContext 注入(inject) Wicket 组件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823225/