我有一個彈簧容器正在運行,並且我有一個類可以訪問在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