work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Spring Boot 属性配置

Posted on 2020-02-29 12:17  work hard work smart  阅读(399)  评论(3编辑  收藏  举报

Spring Boot 属性配置的方式有以下几种,优先级分别从高到底排列

1、Devtool全局配置

2、测试环境@TestPropertySouce注解

3、测试环境properties属性

4、命令行参数

5、SPRING_APPLICATION_JSON属性

6、ServletConfig初始化参数

7、ServletContext初始化参数

8、JNDI属性

9、JAVA系统属性

10、操作系统环境变量

11、RandomValuePropertySource随机值属性

12、jar包外的application-{profile}.properties

13、jar包内的application-{profile}.properties

14、jar包外的application.properties

15、jar包内的application.properties

16、@PropertySource绑定配置

17、默认属性

 

 下面分别从低优先级开始

17、默认属性

1)增加属性weburl的值为www.baidu.com

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class Sb2Application {

	public static void main(String[] args) {
		SpringApplication springApplication = new SpringApplication(Sb2Application.class);
		Properties properties = new Properties();
		properties.setProperty("weburl","www.baidu.com");
		springApplication.setDefaultProperties(properties);
		springApplication.run(args);
	}

}

  

2)然后通过一个启动类加载器打印属性weburl

@Component
public class ResultCommandLineRunner implements CommandLineRunner, EnvironmentAware {

    private Environment env;

    @Override
    public void run(String... args) throws Exception {
        System.out.println(env.getProperty("weburl"));
    }



    @Override
    public void setEnvironment(Environment environment) {
        this.env = environment;
    }
}

  

3)输出结果

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

...

www.baidu.com

  

 

16、@PropertySource绑定配置

1)在前面的基础上,在resources文件夹下增加demo.properties文件

 

 

2) 然后使用PropertySource绑定配置

 

 

3) 运行程序

 

14、jar包外的application.properties

创建application.yml

 

 输出结果

 

 

然后在application.properties增加配置

 

 

输出结果为

 

 说明application.properties的优先级高于application.yml

 

13、jar包内的application-{profile}.properties

增加application-default.yml

 

 输出结果

 

 

增加application-default.properties

 

 输出结果

 

 

11、RandomValuePropertySource随机值属性

1)在application-default.properties中增加一个属性,值为随机数

 

 

2)在启动类加载器中输出这个属性

 

 3) 运行结果

 

 

10、操作系统环境变量

设置环境变量

 

 

 输出结果

 

 

 

9、JAVA系统属性

增加获取虚拟机名字

 

在启动类加载器中输出这个属性

 

 

 

 输出结果

 

 

 

 

6、ServletConfig初始化参数  7、ServletContext初始化参数

6、7两种主要是通过server.xxx设置一些属性

 

 

5、SPRING_APPLICATION_JSON属性

增加参数--SPRING_APPLICATION_JSON={\"weburl\":\"hello,SPRING_APPLICATION_JSON\"}

 

 

输出结果:

 

 

4、命令行参数

增加参数

 

 

输出结果

 

 

2、测试环境@TestPropertySouce注解  3、测试环境properties属性

这两个测试用的比较多