有什么方法可以获取所有Javax.sql.datasource的集合,这些javax.sql.datasource在弹簧



,鉴于可以如下构建数据源bean:

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url2}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
<bean id="dataSource3" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url3}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

有没有办法获得所有这些数据源的集合,而无需通过其标识符明确引用豆类?例如getBean(" dataSource3")。容器或应用程序上下文在这里是否提供任何帮助?

从本质上讲,给定一个已经定义的所有bean的配置文件,在春季可以实现吗?

Collection<DataSource> getAllRegisteredDataSources();

非常感谢

是的,您可以采用两种方法来解决此问题。

第一种方法,基本方法是创建主配置和自动线程其他配置,并通过自动连接上下文您可以构建数据集合的集合

  @Configuration
  @Import({ DataSourceAConfig.class }) // Import additional configuration files as required
  public class MasterConfig {
          @Autowired DataSourceAConfig dataSourceAConfigContext; 
            @Bean public List<DataSource> getAllDataSources(){
                 DataSource dataSourceA = dataSourceAConfigContext.getDataSourceBean()
                 // Add data in sequentially way, one after the other 
                return Arrays.asList(dataSourceA);
     }
  }

第二种方法;我建议的方法是查看使用Spring Boot应用程序(尤其是指标周围的启动程序)的执行器服务。

http://docs.spring.io/spring-boot/docs/current/referent/Reference/html/production-readin-dready-endpoints.html

http://docs.spring.io/spring-boot/docs/current/referent/referent/html/production-redact--ready-metrics.html

他们提供了超出活动数据源数量的其他信息;包括资源利用和健康检查。

希望它有帮助。

相关内容

最新更新