本篇文章的主题是在springboot中写多个配置文件,指定让个配置文件生效,以便于达到在开发环境,测试环境,线上环境根据不一样的配置灵活应用;读完本篇你将得到,学会springboot的多环境配置;学会使用idea配置虚拟机参数启动不一样的配置文件;学会使用jar包运行而且指定不一样的配置文件等;java
spring框架内部提供了2中方式用于加载YAML文档,以供启动时读取配置文件;YamlPropertiesFactoryBean
会 加载 YAML 变为 Properties;YamlMapFactoryBean
会 转换 YAML 为map;使用YAML更加简便不用担忧内部具体如何转换;web
引入依赖boor-start依赖和打包插件;jdk1.8版本,boot2.1.1;spring
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
一切从简,知识追寻者不会在配置文件中写其余内容,就指定端口便可,用于区别不一样的环境;其中配置开发环境为dev,生产环境为pro;默认激活dev 环境;浏览器
# 激活配置 spring: profiles: active: dev --- # 配置一 开发环境 spring: profiles: dev server: port: 8060 --- # 配置二 生产环境 spring: profiles: pro server: port: 8061
controller一个hell方法,用于浏览器测试;springboot
@RestController public class ZSZXZ { @GetMapping("zszxz") public String hello(){ return "hello 知识追寻者"; } }
启动类添加@SpringBootApplication注解,表名是个springboot应用,会进行自动配置;app
/** * @Author lsc * <p> 多环境配置 </p> */ @SpringBootApplication public class ProfileApp { public static void main(String[] args) { SpringApplication.run(ProfileApp.class,args); } }
启动工程,打开浏览器路径以下,端口是8086,说明默认激活dev环境已经成功框架
http://localhost:8060/zszxzmaven
application.yml中修改激活环境为pro后重启工程,修改浏览器端口,执行结果以下说明配置成功;ide
# 激活配置 spring: profiles: active: pro
http://localhost:8061/zszxzspring-boot
执行结果
去除application.yml中激活方式,知识追寻者改用idea配置VM参数选项方式进行激活;
--- # 配置一 开发环境 spring: profiles: dev server: port: 8060 --- # 配置二 生产环境 spring: profiles: pro server: port: 8061
在VM选项中输入-Dspring.profiles.active=dev
,表示激活dev环境;而后重启工程访问便可
将工程打包成jar包,在cmd中以下命令执行,若是包名不一样请替换,而后浏览器访问便可;
java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev
上面的配置文件都写在一个application.yml中,过于累赘,为了方便查阅和解耦合,推荐多个配置文件方式,而后在主配置文件中激活,具体的步骤以下;
新建yml文件名为application-zszxz.yml;内容以下
server: port: 8061
新建yml文件名为application-test.yml;内容以下
server: port: 8060
修改application.yml内容以下
spring: profiles: active: zszxz
http://localhost:8061/zszxz 启动后结果 与以前一致,再也不贴图浪费资源;