java - 如何在 WAR 存档中包含应用程序配置文件?
问题描述
我在部署 Java Web 应用程序时遇到问题。它以我们的应用程序配置文件 (myapp.properties) 为中心。在某些情况下,将这个文件放在 WAR 外部似乎可以正常工作,但是每当我尝试正确部署它(Docker、正确的 JBoss 部署等)时,由于无法从 myapp.properties 中找到/读取,部署不可避免地会失败.
我在这里和其他地方看到了一些将这些文件打包到 WAR 存档中的参考资料,但我找不到任何有关如何实际执行此操作的信息。所以,我的问题是:
在 WAR 存档和/或部署中包含应用程序配置文件的正确方法是什么?
解决方案
这取决于您要如何访问该文件。
如果你想通过类加载器资源加载它,你需要它在类路径中,所以最好的位置是 inside WEB-INF/classes
。
顺便说一句,如果你使用 Maven,资源src/main/resources
最终会在哪里
例如,您还可以将它放在 WAR 中的任何位置,WEB-INF/config
并通过ServletContext.getResourceAsStream("/WEB-INF/config/....
. 但请注意,它不在WEB-INF
目录内,您必须在部署描述符中明确禁止访问该文件web.xml
,否则客户端请求可以访问该文件。
推荐阅读
- python - 如何在 dynamodb 中使用 put_item 在条件表达式中提及地图/字典属性
- android - 如何在 Videoview 上制作圆形 GLSurfaceView?
- c# - 通过 .net 核心上的模式添加/编辑记录
- java - 在浏览器中显示 RTSP H264 流的现代方式 (HTML5)
- outlook - 我可以使用 netoffice 包从 Web 应用程序自动化 Outlook 应用程序吗?有没有什么缺点
- git - 重新设置内容相同但哈希值不同的提交
- php - 有没有办法使用 PHPPresentation 创建带有虚线的折线图?
- python - 使用python 3的AES加密和解密
- c# - ASP.NET Core API - 动态路由(使 API 路由表现得像“单参数查询字符串”)
- mysql - MySQL 根据条件每行更新值行