在spring MVC app中外部存储数据库信息的最佳方法

时间:2017-11-07 13:13:00

标签: java spring hibernate file config

我希望将我的网络应用程序分发给我工作的公司的许多不同部门,并​​且我想知道允许每个部署提供自己的数据库实例的最佳方式是什么。我正在使用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文件,我打算保持这种方式。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

感谢您的帮助,我最终使用以下命令注释我的配置类:

@PropertySource("classpath:config.properties")

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

dbUrl = JDBC:JTDS:SQLSERVER://本地主机:1433 / MDHIS;实例名= ADT; sendUnicode =假

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

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

环境是在我的Hibernate配置类中自动装配的依赖项。

谢谢!