在springMVC应用程序中外部存储数据库信息的最佳方式



我希望将我的web应用程序分发到我工作的公司的许多不同部门,我想知道允许每个部署提供自己的数据库实例的最佳方式是什么。我使用的是Hibernate,第一次部署实际上创建了数据库并在其中导入了大量数据,但我正在寻找最干净、最可靠的方式,允许用户指定自己的数据库URL和凭据。目前,我的代码有一个数据库信息的硬编码参考:

public DataSource dataSource() 
{
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try
{
dataSource.setDriverClass("net.sourceforge.jtds.jdbc.Driver");
String hostName = InetAddress.getLocalHost().getHostName();
dataSource.setJdbcUrl("jdbc:jtds:sqlserver://localhost:1433/MDHIS;InstanceName=ADT;sendUnicode=false");
dataSource.setUser("sa");
dataSource.setPassword("N0tY0urBu$1nes$");
}
catch (Exception ignored) {}
return dataSource;
}

我在网上读到,使用网络应用程序的相对路径无法轻松读取配置文件(如果是这样的话,请尽一切努力打破这个神话),所以我考虑使用环境变量。我希望它是完全可移植的,可以在Ubuntu和Windows上运行,所以不确定它的工作效果如何。我使用的是一个100%基于注释的方法,所以没有任何XML文件,我希望它保持这种状态。

有什么建议吗?

谢谢!

感谢您的帮助,我最终用注释了我的配置类

@PropertySource("classpath:config.properties")

然后,我将上述文件放在java文件夹中,该文件夹是类路径的基础。我把这个放在文件中:

dbUrl=jdbc:jtds:sqlserver://localhost:1433/MDHIS;InstanceName=ADT;sendUnicode=错误

我现在可以通过以下操作访问代码中的信息:

dataSource.setJdbcUrl(environment.getProperty("dbUrl"));

环境是一个依赖项,它在我的Hibernate配置类中是自动连接的。

谢谢!

最新更新