在Spring应用程序中动态选择Tomcat mysql连接池的目录

时间:2014-05-22 14:47:14

标签: java mysql spring tomcat catalog

我需要从运行在tomcat服务器中的spring应用程序创建连接池。 这个应用程序有很多目录,名为'db'的主目录(它是静态的)只有一个包含所有现有目录名称的表和一个用于“活动”目录的布尔标志。

当应用程序启动时,我需要从主目录中选择活动目录,然后我必须选择它作为默认目录。

我该如何做到这一点?

到目前为止,我使用了自定义类DataSourceSelector extends DriverManagerDataSource,但现在我需要使用池改进数据库连接,然后我想到了一个tomcat dbcp池。

2 个答案:

答案 0 :(得分:1)

我建议采取以下步骤:

  1. 扩展BasicDataSourceFactory以生成自定义的BasicDataSource
  2. 这些自定义的BasicDataSource已经知道哪个目录处于活动状态并且相应地设置了defaultCatalog属性。
  3. 在Tomcat配置中使用扩展的BasicDataSourceFactory

答案 1 :(得分:-1)

@Configuration
public class DataAccessConfiguration {

    @Bean(destroyMethod = "close")
    public javax.sql.DataSource dataSource() {
        org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost/db");
        ds.setUsername("javauser");
        ds.setPassword("");
        ds.setInitialSize(5);
        ds.setMaxActive(10);
        ds.setMaxIdle(5);
        ds.setMinIdle(2);
        ds.get
        return ds;
    }

}