我来给你讲解一下Java如何使用@ConfigurationProperties获取yml中的配置。
什么是@ConfigurationProperties?
@ConfigurationProperties是Spring Boot框架中的一个注解,它可以将配置文件中的属性与一个JavaBean绑定在一起,使得我们可以通过JavaBean的属性名来获取配置文件中的属性值。
如何使用@ConfigurationProperties获取yml中的配置?
在使用@ConfigurationProperties之前,我们需要做一些准备工作。
- 首先在pom.xml中引入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 然后在yml配置文件中定义属性值,例如:
my:
name: Alice
age: 20
- 接着在JavaBean中通过@ConfigurationProperties注解将配置文件中的属性与JavaBean的属性绑定起来,例如:
@Component
@ConfigurationProperties(prefix = "my")
public class MyConfig {
private String name;
private int age;
// 省略setter和getter方法
}
- 最后在需要使用这些属性的地方注入MyConfig即可获取配置文件中的属性值,例如:
@RestController
public class MyController {
@Autowired
private MyConfig myConfig;
@GetMapping("/my")
public String my() {
return "name: " + myConfig.getName() + ", age: " + myConfig.getAge();
}
}
这样就可以通过@ConfigurationProperties获取yml中的配置了。
示例说明
下面给出两个示例来说明@ConfigurationProperties的具体使用过程:
示例1
在yml配置文件中定义一个属性值:
redis:
host: localhost
在JavaBean中将配置文件中的属性值与JavaBean的属性绑定起来:
@Component
@ConfigurationProperties(prefix = "redis")
public class RedisConfig {
private String host;
// 省略setter和getter方法
}
在需要使用这些属性的地方注入RedisConfig即可获取配置文件中的属性值:
@RestController
public class RedisController {
@Autowired
private RedisConfig redisConfig;
@GetMapping("/redis")
public String redis() {
return "host: " + redisConfig.getHost();
}
}
示例2
在yml配置文件中定义多个属性值:
my:
name: Alice
age: 20
address:
province: Beijing
city: Haidian
street: Zhongguancun
在JavaBean中将配置文件中的属性值与JavaBean的属性绑定起来:
@Component
@ConfigurationProperties(prefix = "my")
public class MyConfig {
private String name;
private int age;
private Address address;
// 省略setter和getter方法
public static class Address {
private String province;
private String city;
private String street;
// 省略setter和getter方法
}
}
在需要使用这些属性的地方注入MyConfig即可获取配置文件中的属性值:
@RestController
public class MyController {
@Autowired
private MyConfig myConfig;
@GetMapping("/my")
public String my() {
return "name: " + myConfig.getName() + ", age: " + myConfig.getAge() +
", province: " + myConfig.getAddress().getProvince() +
", city: " + myConfig.getAddress().getCity() +
", street: " + myConfig.getAddress().getStreet();
}
}
这样就可以通过@ConfigurationProperties获取yml中的配置了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何使用ConfigurationProperties获取yml中的配置 - Python技术站