手拉手Springboot获取yml配置文件信息
环境介绍
技术栈 |
springboot3 |
软件 |
版本 |
8 |
|
IDEA |
IntelliJ IDEA 2022.2.1 |
JDK |
17 |
Spring Boot |
3.1.7 |
配置文件说明:启动配置文件优先级:properties高于yml
实体类获取配置文件信息
方式一@Value()
通过在属性上使用@Value注解,直接将yml文件中的属性值注入到对应的属性中。这种方式适用于需要将yml文件中的属性值注入到单个属性中的情况。
@Value()注解可以用来将外部的值动态注入到Bean中,在@Value注解中,可以使用 ${} 和 #{} 区别
@Value("${}"): 可以获取对应助兴文件中定义的属性值
@Value("#{}"):表示SpEl表达式通常来获取bean的属性,或者调用bean的某个方法
@Component
@Data
public class Host {
@Value("${host01.host}")
private String host;
@Value("${host01.port}")
private String port;
@Value("${host01.user}")
private String user;
@Value("${host01.password}")
private String password;
}
方式二@ConfigurationProperties(prefix = "前缀")
加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Spring源码中大量使用了ConfigurationProperties注解,比如server.port就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。
该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上。当将该注解作用于方法上时,如果想要有效的绑定配置,那么该方法需要有@Bean注解且所属Class需要有@Configuration注解。
Sring的有效运行是通过上下文(Bean容器)中Bean的配合完成的,Bean可以简单理解成对象,有些对象需要指定字段内容,那么这些内容我们可以通过配置文件进行绑定,然后将此Bean归还给容器.
@ConfigurationProperties注解将yml中的值映射到bean的属性上,通过在配置类上使用@ConfigurationProperties注解,将yml文件中的属性值映射到配置类的属性上。这种方式适用于需要将yml文件中的多个属性值映射到一个配置类中的情况。
@Component
@ConfigurationProperties(prefix = "host01")
@Data
public class Host {
//@Value("${host01.host}")
private String host;
//@Value("${host01.port}")
private String port;
//@Value("${host01.user}")
private String user;
//@Value("${host01.password}")
private String password;
}
- 点赞
- 收藏
- 关注作者
评论(0)