我有一个Spring Boot应用程序,它与MongoDB数据库有连接。
我可以在server.properties中配置的连接。 对于当前的开发,我可以使用localhost。 但是对于以后的服务器实现,我需要配置一个新的server.properties。
如何更改它,如果我启动程序,请使用具有不同服务器连接的development.server.properties或Consumer.server.properties?
答案 0 :(得分:2)
选项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, application-prod.properties ...
在启动时,先使用环境变量spring.profiles.active指定活动配置文件:
java -jar -Dspring.profiles.active=prod demo-0.0.1-SNAPSHOT.jar