大家都知道Spring Boot项目的配置文件是application.yml,Spring Boot在启动时,会从application.yml 中读取配置信息。但在实际应用中,可能会遇到,开发时使用开发环境,测试时使用测试环境,上线时使用生产环境。每个环境的配置都可能不一样,比如开发环境的数据库用的是本地数据库,而生产环境用的是正式的数据库,再比如服务器的IP,端口也不同。那么我们在打包的时候都需要修改相应的配置信息,然后再打包, 这样既麻烦又容易出错。下面介绍一种简单的方法,打包时不需要修改配置信息,也可以实现不同的环境使用不同的配置文件。首先,在application.yml里加入下面这几行:
spring:
profiles:
active: dev
这几行的含义是指定当前项目的默认环境为 dev,即项目启动时如果不指定任何环境,Spring Boot 会自动从 dev 环境文件中读取配置信息。我们可以将不同环境都相同的配置信息写到这个文件中。然后创建多环境配置文件,文件名的格式为:application-{profile}.yml,其中{profile} 替换为环境名字,比如 application-dev.yml. 然后在此文件中添加当前环境的设置。比如server IP, port, 数据源等等。这样就实现了多环境的配置。每次编译打包后无需再做任何修改,打包 jar 文件后,在命令行添加参数
–spring.profiles.active=dev 其中"dev"是要运行的环境。比如:
java -jar xx.jar --spring.profiles.active=dev
这样运行时就会读取指定环境的配置文件。