我有了彈簧注入道(下文簡化的)一個單:依賴注入到你的單身
public class MyService<T> implements Service<T> {
private final Map<String, T> objects;
private static MyService instance;
MyDao myDao;
public void set MyDao(MyDao myDao) {
this. myDao = myDao;
}
private MyService() {
this.objects = Collections.synchronizedMap(new HashMap<String, T>());
// start a background thread that runs for ever
}
public static synchronized MyService getInstance() {
if(instance == null) {
instance = new MyService();
}
return instance;
}
public void doSomething() {
myDao.persist(objects);
}
}
我的Spring配置可能會是這樣的:
<bean id="service" class="MyService" factory-method="getInstance"/>
但是,這將實例啓動期間的MyService。
有沒有一種編程方式來執行MyDao到MyService的依賴注入,但沒有春天管理MyService?
基本上,我希望能夠從我的代碼做到這一點:
MyService.getInstance().doSomething();
而有彈性注入MyDao我。
你必須在需要的地方使用ApplicationContext獲取bean? – Langali 2010-05-18 20:22:31
我會*通常*在初始化時獲得我的一個頂級bean,然後根據需要從頂級bean中引用更多的bean。但你可以做你的建議。 – 2010-05-18 20:29:31