记录:398
场景:在Spring Boot的微服务中从application.yml等yml文件中加载自定义配置内容。使用@Value直接加载单个配置。使用@ConfigurationProperties注解把一个或者多个配置加载为Java对象。
版本:JDK 1.8,SpringBoot 2.6.3
1.使用@Value注解加载配置
使用注解@RestController、@Service、@Component等标记的类中,都可以使用@Value注解从yml文件中加载配置取值。
1.1在yml文件配置
-
hub:
-
example:
-
city-name: '杭州'
1.2使用@Value取值
-
@Value("${hub.example.city-name}")
-
private String cityName;
2.从yml文件加载配置为普通Java对象
在Java类上,加@ConfigurationProperties注解,实现从yml文件加载配置为普通Java对象。
注解@ConfigurationProperties的属性prefix是指定扫描yml文件中的配置的前缀。
注解@Component指定该类交给Spring创建Bean对象。
使用时,在类变量上加@Autowired直接注入就可以取值。
2.1在yml文件配置
-
hub:
-
example:
-
city:
-
city-id: 330100
-
city-name: '杭州'
2.2对应Java类
-
@Component
-
@ConfigurationProperties(prefix = "hub.example.city")
-
public class CityProperties {
-
private Long cityId;
-
private S