Spring Boot应用读取配置文件中的属性

@[TOC]Spring Boot读取配置文件(.yml或.properties)属性的几种方式:

Spring boot作为目前Java开发领域非常流行的,实际开发过程中经常需要从配置文件中读取相应的参数,目前总结有以下三种读取配置文件属性的方式;

@Value注解

@Value注解是Spring 提供读取单个属性注解,使用非常简单,在相应的类属性上添加@Value注解即可,通过${“key”}获取对应key的值。

@Value("${demo.success}")
private boolean success;

但是在使用的时候需要注意以下几点:

  1. 首先该属性所属的类必须是 Spring 容器管理的Bean ,也就是说该类的注解一般是由@Controller,@RestController,@Component,@Service等注解修饰;
  2. 对应的Key在配置文件中必须存在,否则Spring Boot应用在启动的时候会报以下错误(demo.success1这个key在我的配置文件中不存在);
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'demo.success1' in value "${demo.success1}"

@ConfigurationProperties

@ConfigurationProperties注解也是Spring Boot提供将Java Bean属性初始化的方法,使用上也较为简洁,在相应的Java bean上添加@ConfigurationProperties(prefix = “属性KEY前缀”)

@Component
@ConfigurationProperties(prefix = "my.thread") // my.thread配置文件的key前缀
@PropertySource("classpath:application.yml")   //@PropertySource 指定来源于那个配置文件,可以没有
public class ThreadConfig {
	// 单属性赋值
	private int max;
	
	private int min;
	
	private long waitTime;
	// map属性赋值
	private Map<String,String> map;
	
	// list属性赋值
	private List<String> list;
    // bean对象包含其他bean对象的初始化
    private Config01 config;
	// 此处省略 属性的set/get方法;
}

*.yml文件的配置实例

demo:
  success: true
my:
  thread:
    max: 10
    min: 2
    waitTime: -1
    # List的写法,多个属性用逗号分隔
    list: 01,02,03,04
    #普通对象的写法
    config:
      test01: 0001
      test02: 0002
    # Map参数注入的写法
    map:
      key01: value01
      key02: vale02

传统方法

传统方法为通过文件流的方式读取配置文件,这里就不列举了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值