SpringBoot系列之profiles专题

正文:

springboot在不同环境下读取不同配置文件的一种方式,一般环境就是本地开发dev,测试test,以及生产环境prod。

简述:springboot默认读取application.yml或者application.properties。为了区别不同环境所以提供了profiles机制。若此时是在开发环境,只要有个配置文件如application_dev.yml,则在application.yml中通过spring.profiles.active=dev,当容器启动时读取配置则优先读取dev中的值(相同属性的)。

常见实现方式:

一.(springboot支持的profile)直接在application.yml中设置属性spring.profiles.active=xxx;

二.  (maven支持的profile)在maven中配置profiles节点

1.首先在pom中配置如下


        
        
            dev
            
                true这个很重要,开启
            
            
                dev
                
            
        

          2.然后在application.yml加入spring.profiles.active=@profileActive@ ,红字部分可以自己定义中的属性名。

注意点:@.....@是啥?

这是资源过滤占位符,通俗点讲跟${xxx}是一样的,但是Maven默认的是这个${},而SpringBoot扩展了properties功能,也可通过

${xxx}引用已定义的配置项,所以两者冲突。在父pom(spring-boot-starter-parent)就做了配置,将springboot的换为@xxx@并且禁用默认的maven资源过滤占位符。所以@xxx@可以引用maven中定义的属性

 

你可能感兴趣的:(Springboot系列)