springboot如何读取配置文件(application.yml)中的属性值

本篇文章主要介绍了springboot如何读取配置文件(application.yml)中的属性值,具有一定的参考价值,有兴趣的小伙伴可以了解一下

在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值:

1、引入依赖:

1

2

3

4

5

6

<!-- 支持 @ConfigurationProperties 注解 -->

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-configuration-processor</artifactId>

  <optional>true</optional>

</dependency>

2、配置文件(application.yml)中配置各个属性的值:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

myProps: #自定义的属性和值

 simpleProp: simplePropValue

 arrayProps: 1,2,3,4,5

 listProp1:

  - name: abc

   value: abcValue

  - name: efg

   value: efgValue

 listProp2:

  - config2Value1

  - config2Vavlue2

 mapProps:

  key1: value1

  key2: value2

3、创建一个bean来接收配置信息:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

@Component

@ConfigurationProperties(prefix="myProps") //接收application.yml中的myProps下面的属性

public class MyProps {

  private String simpleProp;

  private String[] arrayProps;

  private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的属性值

  private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的属性值

  private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的属性值

    

  public String getSimpleProp() {

    return simpleProp;

  }

    

  //String类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要

  public void setSimpleProp(String simpleProp) {

    this.simpleProp = simpleProp;

  }

    

  public List<Map<String, String>> getListProp1() {

    return listProp1;

  }

  public List<String> getListProp2() {

    return listProp2;

  }

  

  public String[] getArrayProps() {

    return arrayProps;

  }

  

  public void setArrayProps(String[] arrayProps) {

    this.arrayProps = arrayProps;

  }

  

  public Map<String, String> getMapProps() {

    return mapProps;

  }

  

  public void setMapProps(Map<String, String> mapProps) {

    this.mapProps = mapProps;

  }

}

启动后,这个bean里面的属性就会自动接收配置的值了。

4、单元测试用例:

1

2

3

4

5

6

7

8

9

10

11

@Autowired

  private MyProps myProps; 

    

  @Test

  public void propsTest() throws JsonProcessingException {

    System.out.println("simpleProp: " + myProps.getSimpleProp());

    System.out.println("arrayProps: " + objectMapper.writeValueAsString(myProps.getArrayProps()));

    System.out.println("listProp1: " + objectMapper.writeValueAsString(myProps.getListProp1()));

    System.out.println("listProp2: " + objectMapper.writeValueAsString(myProps.getListProp2()));

    System.out.println("mapProps: " + objectMapper.writeValueAsString(myProps.getMapProps()));

  }

测试结果:

1

2

3

4

5

simpleProp: simplePropValue

arrayProps: ["1","2","3","4","5"]

listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]

listProp2: ["config2Value1","config2Vavlue2"]

mapProps: {"key1":"value1","key2":"value2"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值