【问题标题】:Spring - Multiple datasource programmaticallySpring - 以编程方式实现多个数据源
【发布时间】: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


【解决方案1】:

Spring Environment Profiles 应该可以解决您的问题。 例如,您可以使用配置文件设置您的应用程序,以便仅使用那些名为“group_a”的数据源。

【讨论】:

    猜你喜欢
    • 2013-02-05
    • 2012-02-13
    • 2012-12-29
    • 2017-07-27
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2021-10-19
    相关资源
    最近更新 更多