springboot多环境配置

今天新搭了一个项目,趁此机会,把springboot项目启动不同配置的环境(开发、测试、生产)复习一下,,总结两种方法,两种方法大同小异,其实也差不多。

第一种:

1.1.1、新增四个配置文件

springboot多环境配置_第1张图片

application.yml是默认加载的,只需要把spring.profiles.active: 指向你需要的yml,就可以启动你想要启动的配置文件。

1.2.1、修改application.yml

在上面基础上,可以更灵活一点,就是读pom,
那上面得做如下的修改:

springboot多环境配置_第2张图片

1.2.2、修改pom

然后修改pom,如下:


        
            dev
            
                
                dev
            
        
        
            test
            
                test
            
        
        
            prod
            
                prod
            
            
                
                true
            
        
    

    
        
            
                
                src/main/resources 
                
                true
            
        
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.3.0.RELEASE
            
        
    

其中,pom里面的 activatedProperties 对应的就是application.yml里面的 @activatedProperties@

springboot多环境配置_第3张图片

1.2.3、配置activeByDefault参数

 

springboot多环境配置_第4张图片

只需要把这三行代码放到你想启动的环境下面就可以了。

避坑一:不能识别符号@,在步骤中配置的@activatedProperties@,启动会报异常,不能识别@符号。解决方法:

在pom.xml中设置filtering为true

true

第二种:

原理和第一种大同小异。相对来说更简单一点。 名字可以一样,包的位置不同

springboot多环境配置_第5张图片

2.1.2、修改pom文件


        
            dev
            
                dev
            
            
            
                true
            
        
        
            test
            
                test
            
        
        
            
            prod
            
                prod
            
        
    

    
        
            
                src/main/resources/config
                
                
                    test/*
                    prod/*
                    dev/*
                
            
            
                src/main/resources
                
                    **/*.xml
                
                false
            
            
                src/main/resources/config/${profiles.active}
            
        

        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

springboot多环境配置_第6张图片

最后一步和方法一样,只需要把



    true

放到不同的位置就好了。

springboot多环境配置_第7张图片

这样就ok了!

个人感觉项目本地启动的时候才会涉及到上面的问题,如果项目发布到服务器上面,那么重要的就不是启动了,而是打包了,如何打自己想要的包(测试、开发环境),只需要一条命令就可以了

-Pdev 或者 -Pprod指向一下就可以了。

避坑二:我开始在【datasource】下面配置【profiles】,spring已启动就报错:后来把【profiles】配置上移到Spring第一个配置就不报错了。很奇怪

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
  
  profiles:
    active: develop  #需要使用的配置文件的后缀

END!!!

你可能感兴趣的:(spring,boot,java,spring)