Home >Java >javaTutorial >How does Springboot specify to obtain the configuration values ​​​​in the yml file?

How does Springboot specify to obtain the configuration values ​​​​in the yml file?

王林
王林forward
2023-05-15 09:55:121300browse

Content:

Here are two methods introduced, both of which are based on annotations. They are:

@Value("${xxxxx.xx}")

@ConfigurationProperties(prefix = "xxxxx")

Enter the topic:

@Value("${xxxxx.xx}")

Using this method is very simple (each annotation gets a corresponding configuration value),

Add our custom configuration items in the yml, such as (uppercase or lowercase, please match it when calling) Just fine):

How does Springboot specify to obtain the configuration values ​​​​in the yml file?

Specify to obtain these values ​​for use, such as:

@Value("${myKey.tua}")
    private  String tuaKey;
    @Value("${myKey.aco}")
    private  String acoKey;
    @Value("${mynum.new}")
    private  String myNum;
 
    @GetMapping("/getMyTest")
    public void getMyTest(){
 
        System.out.println("tuaKey:"+tuaKey);
        System.out.println("acoKey:"+acoKey);
        System.out.println("myNum:"+myNum);
    }

You can see the result and obtain it normally:

How does Springboot specify to obtain the configuration values ​​​​in the yml file?

@ConfigurationProperties(prefix = "xxxxx")

It is also very simple to use this method (obtain multiple configuration values ​​at one time and instantiate them into beans and put them into the spring container),

Add our custom configuration items in yml, such as (note that the key parameter at the beginning should be in lowercase, and it will be wrong to use uppercase, because prefix does not support camel case naming and underscore form):

How does Springboot specify to obtain the configuration values ​​​​in the yml file?

Then we build an entity class for these configuration items and use the annotation @ConfigurationProperties, such as:

prefix refers to the prefix, which is usually the first one. We The first one in this example is myinfo

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
/**
 * @Author : JCccc
 * @CreateTime : 2020/5/19
 * @Description :
 **/ 
 
@Component
@ConfigurationProperties(prefix = "myinfo")
public class MyInfo {
 
    private String name;
    private Integer age;
    private String description;
 
    @Override
    public String toString() {
        return "MyTest{" +
                "name="" + name + """ +
                ", age=" + age +
                ", description="" + description + """ +
                "}";
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public void setAge(Integer age) {
        this.age = age;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
}

specifies to obtain these values ​​for use, which is equivalent to using this class and directly using it with @Autowired:

@Autowired
    MyInfo myInfo;
 
    @GetMapping("/getMyTest")
    public void getMyTest(){
 
        System.out.println("myInfo:"+myInfo.toString());
        System.out.println("myInfo name:"+myInfo.getName());
    }

You can see the results, Get normal:

How does Springboot specify to obtain the configuration values ​​​​in the yml file?

The above is the detailed content of How does Springboot specify to obtain the configuration values ​​​​in the yml file?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete