其他主题已涵盖类似的主题,但我无法找到解决问题的明确方法。
我们要努力实现的是设计一个能够:
的网络应用程序目前我们有一个DAO Manager对象,它能够读取数据源配置文件并实例化多个会话工厂,并将它们保存在地图中。每个会话工厂都使用包含正确的hibernate映射类的配置创建(每个数据库模式都不同)。此外,我们有多个DAO接口及其实现,用于访问“他们的数据库”。
此时我们需要一种方法从DAO管理器获取一个特定的DAO对象,其中包含正确的会话工厂,所有这些都基于用户请求(基本上是来自包含数据源ID或自定义的上述服务的调用)数据源对象)。
理想情况下,服务层应该使用DAO管理器根据数据源ID(例如)获取DAO对象,而不必担心它的实际实现:DAO管理器会通过创建正确的DAO对象来处理它。根据数据源ID注入正确的会话工厂。
我的问题是:
答案 0 :(得分:1)
这是一个很好的方法吗?
这可能是唯一可行的方法。所以,是的。
如何动态使用Spring 在DAO Manager中注入多个DAO 每个DAO的实现 接口
动态?我以为你想在启动时这样做。如果是这样,只需提供一个包含列表或数组的访问器:
public void setMyDaos(List<Mydao> daos){
this.daos = daos;
}
会议工厂一旦开始 创造,有没有办法让春天 正如我通常所做的那样处理它们 在内部依赖注入 应用程序的context.xml?
这个很难。我想你可能必须将sessionFactory bean存储在scope=session