我有一个带有一个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;
}
如果有的话,我正在寻找更好的方法......