你的配置看起來是這樣的:
<bean id="daoConfig1" class="com.foo.dao.DAOConfig">
<property name="dbUrl" value="jdbc://urlForDao1" />
...
</bean>
<bean id="dao1" class="com.foo.dao.DAO1">
<constructor-arg ref="daoConfig1" />
</bean>
<bean id="business1" class="com.foo.service.Business1">
<property name="dao" ref="dao1" />
</bean>
<bean id="daoConfig2" class="com.foo.dao.DAOConfig">
<property name="dbUrl" value="jdbc://urlForDao2" />
...
</bean>
<bean id="dao2" class="com.foo.dao.DAO2">
<constructor-arg ref="daoConfig2" />
</bean>
<bean id="business2" class="com.foo.service.Business2">
<property name="dao" ref="dao2" />
</bean>
或者共享一個daoConfig
實例的所有daoX
豆之間,如果這就是你想要的。
然後可以使用如下因素來處理業務邏輯:
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"beans.xml"});
Business1 b1 = (Business1) context.getBean("business1");
b1.doStuff();
或者更好的是,使用類似Spring MVC的,可以電匯業務豆到您的控制器,而無需調用getBean()
。
嘗試過註釋? – 2012-02-20 14:07:36
如果你正在做新的MyDAO(),那麼你不會讓Spring構造對象,所以Spring不能向對象中注入任何東西。您需要在業務類實例中注入DAO。 – 2012-02-20 14:12:06
@JB Nizet這是我的困境的一部分,如果我在業務類中注入DAO,我應該如何構建業務類?商業類也是由全新的運營商構建的。 – davidmontoyago 2012-02-20 14:25:18