Spring Boot 多环境yml等文件配置切换

在实际的开发过程中,我们需要将应用程序在不同环境下进行部署,而一般每个环境的配置文件都不同,如果采用手工方式来修改配置文件的话,效率低且易出错。因此我们将通过maven来实现配置文件的自动切换

一、切分配置文件

1.1创建每个环境所对应的配置文件

Spring Boot 多环境yml等文件配置切换_第1张图片

我们可以将不同环境的公共部分放在application.yml里,然后再新建application-dev.yml,application-test.yml,application-prod.yml来分别保存对应的配置。注意application的配置要放在同一文件夹下,而像redis不同环境下的配置则可以新建一个文件夹env来存放。

1.2修改application.yml配置文件

将存放公共配置的application.yml中的默认配置该为 #profileName#

 

二、修改Maven配置

2.1在中添加resource


            
                src/main/resources
                
                    
                    env/*.*
                
            
            
                src/main/resources
                
                    **/*.yml
                    **/*.xml
                    **/*.properties
                
                true
            

2.2添加plugin,注意里面的配置


                org.apache.maven.plugins
                maven-resources-plugin
                3.1.0
                
                    
                        default-resources
                        validate
                        
                            copy-resources
                        
                        
                            target/classes
                            false
                            
                                #
                            
                            
                                
                                    src/main/resources
                                    
                                        
                                        env/*.*
                                        application-dev.yml
                                        application-test.yml
                                        application-prod.yml
                                    
                                
                                
                                    src/main/resources/
                                    
                                        application.yml
                                        env/redis-${profileName}.properties
                                        application-${profileName}.yml
                                    
                                    true
                                
                            
                        
                    
                
            

2.3在下添加


        
            dev
            
                dev
            
            
                true
            
        
        
            test
            
                test
            
        
        
            prod
            
                prod
            
        
    

三、Maven打包

执行以下命令进行打包,dev为对应的环境

mvn clean package -P dev

可以看到最终打包后的程序文件里只有对应环境下的配置文件,并且application.yml里的#profileName#会自动替换成对应的环境

Spring Boot 多环境yml等文件配置切换_第2张图片Spring Boot 多环境yml等文件配置切换_第3张图片

你可能感兴趣的:(Maven)