Profile
开发者在项目发布之前,一般需要频繁更换开发环境、测试环境及生产环境之间进行切换,这个时候大量配置需要频繁更改数据库配置re dis 配置mongodb 配置、 jms 配置等。频繁修改带来巨大工作量 Spring 提供解决方案(@Profile 注解) , SpringBoot 更进一步提供更加简洁的解决方案, Spring Boot 中约定的不同环境下配置文件名称规则为application-{profile} .properties, profile 占位符表示当前环境的名称,具体配置步骤如下
1. 创建配置文件
首先在 resources目录下创建两个配置文件: application-dev.properties和 application-prod.properties,分别表示开发环境中的配置和生产环境中的配置。其中,application-dev.properties文件的内容如下:
server.port=8080
application-prod.properties文件的内容如下:
server.port=80
这里为了简化问题并且容易看到效果,两个配置文件中主要修改了一下项目端口号
2. 配置application.properties
然后在 application.properties 中进行配置:
server.profiles.active=dev
这个表示使用application-dev.properties配置文件启动项目,若将dev改为 prod,则表示使用application-prod.properties启动项目。项目启动成功后,就可以通过相应的端口进行访问了。
3. 在代码中配置
对于第二步在 application.properties 中添加的配置,我们也可以在代码中添加配置来完成,在启动类的 main 方法上添加如下代码 可以替换第二步的配置
SpringApplicationBuilder builder = new SpringApplicationBuilder(SpringBootApplication.class);
builder.application().setAdditionalProfiles("prod");
builder.run(args);
4.项目启动时配置
对于第2步和第3步提到的两种配置方式,也可以在将项目打成jar包后启动时,在命令行动态指定当前环境,示例命令如下:
java -jar chapter01-3-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod