Here are two methods introduced, both of which are based on annotations. They are:
@Value("${xxxxx.xx}")
@ConfigurationProperties(prefix = "xxxxx")
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):
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:
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):
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:
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!