java - 如何更改我的 application.properties 文件?
问题描述
我有一个 Spring Boot 应用程序,它连接到一个 MongoDB 数据库。
我可以在 server.properties 中配置的连接。对于当前的开发,我可以使用 localhost。但是对于后面的服务器实现,我需要配置一个新的 server.properties。
如何更改它,如果我启动程序,请使用 development.server.properties 或 consumer.server.properties 与不同的服务器连接?
解决方案
选项 1:对于大多数真实单词应用程序,属性不直接与源打包,因为它可以包含敏感信息(例如数据库密码)。一个简单的解决方案是将应用程序属性放在文件系统上,然后使用 spring.config.location 参数引用它们
java java -jar demo-0.0.1-SNAPSHOT.jar -Dspring.config.location=/etc/demo/application.properties
通过这种方式,您可以将 application.properties 与打包的 jar 隔离开来,并且可以使用您的部署工具链(如 ansible)为每个环境相应地解析和替换值到 application.properties 文件中。
一些有用的文档可以在这里找到:https ://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
选项 2:使用配置文件。在类路径资源中,您可以拥有一个主 application.properties,它存储所有环境共有的属性,然后为每个环境使用一个 application-{env}.properties,具有特定的键,例如 application-dev.properties、application-int.properties、应用程序-prod.properties...
在启动时,您使用环境变量 spring.profiles.active 指定活动配置文件:
java -jar -Dspring.profiles.active=prod demo-0.0.1-SNAPSHOT.jar
推荐阅读
- powershell - 有人可以检查它不起作用的代码吗
- javascript - 用于从 Viscosity 启动 VMware vm 的 JAX 脚本停止使用最新的 VMware Fusion
- java - 我正在尝试为我的应用程序构建 gradle,但构建失败
- python - Python 在多个子目录中搜索文件以查找特定字符串并返回文件路径(如果存在)
- java - ATM使用方法java
- javascript - 如何使用js重新加载特定元素
- spring-boot - 级联持久性中“字段列表”中的未知列
- c++ - Visual Studio C++ 项目 Linker2019 错误
- mysql - 我想从“AnställningsID”中提取特定信息,它会根据我选择的“AnställningsID”更新“AnställningsID 和“Fnamn”
- javascript - 有没有办法改变日期的显示