在JNDI和非JNDI环境中获取数据源

时间:2016-08-06 21:20:06

标签: java jndi

我有一个带有一个DAO实现模块的模块化应用程序,它允许通过JDBC与数据库进行交互。当我编写DAO模块时,我希望通过DataSource获取JNDI,因为该模块一直被用作Web应用程序的一部分。但是,我需要在独立应用程序中使用相同的DAO模块,因此无法通过JNDI获取数据源。

以下是我获取数据源的方法:

@Bean(destroyMethod = "close")
public DataSource dataSource() throws Exception {
    return new JndiDataSourceLookup().getDataSource("java:comp/env/jdbc/mydatasource");
}

我考虑过在上层模块中定义数据源的可能性如下:

对于网络应用模块,与之前的代码段相同。

对于standalong模块,如下:

@Bean(destroyMethod = "close")
public DataSource dataSource() throws Exception {
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass(driverClassName);
    dataSource.setJdbcUrl(jdbcUrl);
    dataSource.setUser(username);
    dataSource.setPassword(password);
    return dataSource;
}

如果有的话,我正在寻找更好的方法......

0 个答案:

没有答案