07-SpringBoot引入外部配置信息

1、通过@Value("${属性名}")注解获取属性值

@Value注解可以获取properties/yml文件中定义的属性内容

例,在application.yml文件中定义一个filePath属性

然后通过@Value注入属性值

发现可以将注入的filePath的值获取


2、application.yml/application.properties中有统一前缀配置信息引入

使用注解::@ConfigurationProperties(prefix = "统一前缀")

当然也可以通过@Value注解获取,但是得每个属性都得注入,有大量配置信息就显得特别麻烦

有统一前缀的配置信息,可以通过以下方式获取。

例,在application.yml文件中定义一个有统一前缀的student属性

然后写一个配置类,在类上加入@ConfigurationProperties(prefix = "统一前缀")注解,注意属性要一一对应,如图

@ConfigurationProperties(prefix = "student")
@Component  // 注入到Spring容器中
@Data   // lombok提供getter、setter方法
public class StudentProperties {

    private String name;
    private Integer age;
    private Double score;
    private String sex;
}

这样,就可以直接使用有统一前缀的配置信息了

当然,引入@ConfigurationProperties注解后,会发现在其所在当前配置类上方飘红,不过不影响使用

如果有强迫症,也可在pom.xml文件中引入下面的依赖,飘红就没了

<!--@ConfigurationProperties注解飘红去除-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

3、非application.yml/application.properties中有统一前缀配置信息引入

使用组合注解:@ConfigurationProperties(prefix = "统一前缀")、@PropertySource("声明文件位置")

然后写一个配置类,在类上加入@PropertySource("声明文件位置")、@ConfigurationProperties(prefix = "统一前缀")注解,注意声明文件位置、属性要一一对应,如图

测试

猜你喜欢

转载自blog.csdn.net/zhuzbYR/article/details/112971684