在 spring MVC 应用程序中外部存储数据库信息的最佳方式
Best way to store database info externally in spring MVC app
我希望将我的 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("N0tY0urBunes$");
}
catch (Exception ignored) {}
return dataSource;
}
我在网上读到,您无法使用 Web 应用程序的相对路径轻松读取配置文件(如果是的话,请务必粉碎这个神话)所以我在考虑使用环境变量。我希望它是完全可移植的,并且可以在 Ubuntu 和 Windows 上工作,所以不确定它的效果如何。我正在使用 100% 基于注释的方法,因此没有任何 XML 文件,我打算保持这种状态。
有什么建议吗?
谢谢!
感谢您的帮助,我最终用 :
注释了我的配置 class
@PropertySource("classpath:config.properties")
然后我将所述文件放在 java 文件夹中,该文件夹是 class 路径的基础。我把它放在文件中:
dbUrl=jdbc:jtds:sqlserver://localhost:1433/MDHIS;InstanceName=ADT;sendUnicode=false
我现在可以通过以下方式访问代码中的信息:
dataSource.setJdbcUrl(environment.getProperty("dbUrl"));
环境是在我的 Hibernate 配置中自动装配的依赖项 class。
谢谢!
我希望将我的 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("N0tY0urBunes$");
}
catch (Exception ignored) {}
return dataSource;
}
我在网上读到,您无法使用 Web 应用程序的相对路径轻松读取配置文件(如果是的话,请务必粉碎这个神话)所以我在考虑使用环境变量。我希望它是完全可移植的,并且可以在 Ubuntu 和 Windows 上工作,所以不确定它的效果如何。我正在使用 100% 基于注释的方法,因此没有任何 XML 文件,我打算保持这种状态。
有什么建议吗?
谢谢!
感谢您的帮助,我最终用 :
注释了我的配置 class@PropertySource("classpath:config.properties")
然后我将所述文件放在 java 文件夹中,该文件夹是 class 路径的基础。我把它放在文件中:
dbUrl=jdbc:jtds:sqlserver://localhost:1433/MDHIS;InstanceName=ADT;sendUnicode=false
我现在可以通过以下方式访问代码中的信息:
dataSource.setJdbcUrl(environment.getProperty("dbUrl"));
环境是在我的 Hibernate 配置中自动装配的依赖项 class。
谢谢!