我有一个Web应用程序,我手动部署在Tomcat服务器上。
我的带有数据库凭据的属性文件不在classpath中。在启动时我加载它:
prop.load(new FileInputStream("C:\\application.property"));
这就是我现在可以将我的代码移动到基于linux的平台,而无需更改源代码。
如果我将此文件放入classpath,它将被打包在war(包含所有凭据)内,并在每次重新部署应用程序时被替换。 Tomcat正在删除应用程序目录,并在重新部署时将其替换为war内容。
问题是:如何以及在何处将属性文件放在类路径中,并确保在应用程序重新部署时应用程序服务器不会替换/删除此文件。并且该文件不得在战争中。
答案 0 :(得分:2)
你正在做的事情看起来像反模式。不要将数据库连接凭据存储在外部property
文件中。
数据库访问凭据应放在tomcat的context.xml
配置文件中。这称为JNDI资源,您可以阅读它,例如here。