Bla*_*man 2 java spring dependency-injection spring-mvc
我为每个表都有DAO,它们都实现了一个接口.
现在我希望能够(可能)交换数据库层实现.
所以我的策略是创建一个DaoFactory,这个DaoFactory将特定于我的DAO的特定实现.
所以我会有休眠的DAO.然后是一个DaoHibernateFactory,它看起来像:
public class DaoHibernateFactory implements DaoFactory
{
public UserDao GetUserDao() {
return new UserHibernateDao();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的所有经理/服务类中,我将使用当前通过spring ioc连接的Dao___Factory.
这有意义吗?建议?
我会为每个实现分别配置文件,而不是使用工厂.这样春天可以为你注入你的DAO,你不必打电话或维持一个额外的工厂类.
例如:
休眠-data.xml中:
<bean id="userDAO" class="com.foo.dao.hibernate.HibernateUserDao">
...
</bean>
Run Code Online (Sandbox Code Playgroud)
ibatis的-data.xml中:
<bean id="userDAO" class="com.foo.dao.ibatis.IBatisUserDao">
...
</bean>
Run Code Online (Sandbox Code Playgroud)
等等
然后,您可以通过更改-data包含在您的文件中来替换实现web.xml.