我有一个弹簧容器正在运行,并且我有一个类可以访问在spring容器中创建的bean。我拥有的课程没有在弹簧容器中注册。我怎样才能访问弹簧容器?
有一件事我可以做的是,我可以使用MethodInvoker调用一个静态方法,所以我将有机会获得静态字段(这将是从春天容器中的bean)在我的课总是如此。
我们是否喜欢WebapplicationContextUtils类的应用程序,是不是网站的?
我有一个弹簧容器正在运行,并且我有一个类可以访问在spring容器中创建的bean。我拥有的课程没有在弹簧容器中注册。我怎样才能访问弹簧容器?
有一件事我可以做的是,我可以使用MethodInvoker调用一个静态方法,所以我将有机会获得静态字段(这将是从春天容器中的bean)在我的课总是如此。
我们是否喜欢WebapplicationContextUtils类的应用程序,是不是网站的?
你为什么不提供在Spring管理的bean静态getInstance()方法,它允许Spring IoC容器之外的对象进行抢对象的实例? 你的Spring管理对象最有可能是单身人士,所以这应该很好地工作。
例如:
public class MyObj {
private static instance = null;
public MyObj() {
instance = this;
}
public static MyObj getInstance() {
return instance;
}
}
public class OutsideSpringObj {
public doSomething() {
MyObj springManagedObj = MyObj.getInstance();
if (springManagedObj != null) {
// do something with spring-managed object
}
}
}
+1,但请提供链接到库的新版本。 – Bozho 2010-04-16 20:47:55
对不起。我没有注意到这是旧版本。这里是最新的:http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContextAware.html – 2010-04-16 21:18:05
我不能这样做。因为我所说的bean没有在Spring容器中注册。 我期待着使用一个工厂类,它会给我一些静态方法来访问spring容器。 – Antony 2010-04-18 15:26:13