SpringBoot 如何根据不同profile选择不同配置

SpringBoot 根据不同profile选择不同配置

SpringBoot 如何根据不同profile选择不同配置_第1张图片

SpringBoot 如何根据不同profile选择不同配置_第2张图片

SpringBoot 如何根据不同profile选择不同配置_第3张图片

附上pom的 profiles配置

	
		${project.artifactId}
		
			
				src/main/resources/
				true
			

		

		

			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					utf-8
					1.8
					1.8
				
			
		
	

	
		
			dev
			
				true
			

			
				dev
			

		
		
			test
			
				test
			
		
		
			prod
			
				prod
			
			
				
					/Users/xxx/Desktop/prod.properties
				
			

		
	

如果使用的是 application-prod.yml 文件

里面的占位符会被prod.properties替换掉

占位符用 两个@@ 例如:@jdbc.name@

SpringBoot不同profile过滤配置文件

项目多数情况下,需要部署到不同环境中.使用maven打包,不做其它配置时,默认输出的jar包中,包含所有的配置文件,这样显然不太合理,当不同的生产环境中,不希望存在其它的生产环境的配置文件,可采用如下配置

1.pom文件中追加profile配置



   
       dev
       
         
           dev
       
       
           
           true
       
   
   
       test
       
           test
       
   

2.pom文件中build节点下追加资源过滤选项

 
       
        
            src/main/resources
            true
            
                **/application-*.yml
            
        
        
            src/main/resources
            
             
                **/application-${pa}.yml
            
        
 

3.application.yml文件中引用profile中定义参数

spring:
  profiles:
   # profile中定义的pa属性
    active: @pa@

4.手动打包指定环境

mvn clean package -Dmaven.test.skip=true -Pdev
  • -Dmaven.test.skip=true 表示跳过测试,可提高打包速度
  • -P后面的参数为profile的名称

5.开发状态下切换不同环境

SpringBoot 如何根据不同profile选择不同配置_第4张图片

  • 1.IDEA侧边栏Maven->Profiles勾选需要的环境
  • 2.项目目录下,终端中执行命令mvn -DskipTests=true clean install
  • 3.首次切换需要进行如下操作,后续调试运行无需更改

PS

如上配置后,直接更改spring.profiles.active无效,且项目运行会报错

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(SpringBoot 如何根据不同profile选择不同配置)