我有一个Spring容器正在运行,我有一个类,我希望能够访问spring容器中创建的bean。我所拥有的课程没有在弹簧容器中注册。
我可以做的一件事是我可以使用MethodInvoker来调用静态方法,所以我总是可以访问我的类中的静态字段(这将是一个来自spring容器的bean)。
对于非Web应用程序,我们是否有像WebapplicationContextUtils这样的类?
答案 0 :(得分:2)
答案 1 :(得分:0)
为什么不在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
}
}
}