类似的主题也曾在其他线程中讨论过,但我无法找到解决问题的最终解决方案。
我们想要实现的是设计一个能够:
目前,我们有一个DAO Manager对象,它能够读取数据源配置文件并实例化多个会话工厂,并将它们保存在映射中。每个会话工厂都使用包含适当hibernate映射类的配置创建(每个数据库模式不同)。此外,我们有多个DAO接口及其实现,用于访问“他们的数据库”。
此时,我们需要一种从DAO Manager获取特定DAO对象的方法,该对象包含附加的正确的会话工厂,所有这些都是基于用户请求(基本上是来自上面包含数据源id或自定义数据源对象的服务的调用)。
理想情况下,服务层应该使用DAO Manager基于数据源id (例如)获取DAO对象,而不必担心它的实际实现: DAO管理器将根据数据源id创建正确的DAO对象并在其中注入正确的会话工厂,从而处理它。
我的问题是:
interface?
发布于 2011-05-24 12:53:05
,这是一种很好的方法吗?
这可能是唯一可行的方法。所以,是的。
如何使用Spring为每个DAO接口动态注入DAO管理器的多个DAO实现?
动态的?我以为你想在启动的时候做。如果是这样,只需为访问器提供一个列表或数组:
public void setMyDaos(List<Mydao> daos){
this.daos = daos;
}一旦创建了会话工厂,是否有一种方法可以让Spring处理它们,就像我通常在应用程序context.xml中进行依赖注入一样?
这个很难对付。我想你可能得把你的sessionFactory豆存储在scope=session里
https://stackoverflow.com/questions/6109554
复制相似问题