【发布时间】:2016-06-05 16:57:07
【问题描述】:
在我的应用程序中,我必须创建多个数据源(我不知道有多少)。这来自一个配置文件,我在其中设置了每个数据源(假设所有这些都是 Oracle 数据源)。
我如何处理这个问题并根据配置文件中的另一个参数选择一个?
我的想法是将所有这些数据源放在Map 中,并使用密钥我可以获得正确的数据源。
问题是它们都应该用@Bean注解创建,我可以在应用程序的任何地方访问。
你有什么建议吗?
编辑: 从配置文件中我可以拥有:
database1.username=...
database1.password=...
database2.username=...
database2.password=...
当应用程序开始读取这个配置文件并且应该为每个单独创建@Bean,这样我可以稍后根据其他配置参数选择正确的数据源。
【问题讨论】:
-
@Bean 用于每个数据源,具有唯一的名称。你不需要地图;使用 BeanFactory。要求它按名称为您提供 DataSource。为什么要重复?
-
看看我的编辑。我不知道我可以拥有多少个 DataSource,用户将在配置文件中定义 DataSource,我必须创建它们。所以,我不能使用@Bean 定义。我也不能在 XML 中使用 bean,因为用户对 Spring 一无所知,他只是在文件中写入属性:)
标签: spring datasource