【SpringBoot】读取application.yml配置中的三种方式

这篇具有很好参考价值的文章主要介绍了【SpringBoot】读取application.yml配置中的三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot 获取配置文件数据

@Value注解

applicaiton.yml

sys:
  name: book-value
  age: 12
  flag: true

BootValueApplicationTests.java


@RunWith(SpringRunner.class)
@SpringBootTest
public class BootValueApplicationTests {

    @Value("${sys.name}")
    private String sysName;

    @Value("${sys.age}")
    private Integer sysAge;
    
    @Value("${sys.flag}")
    private Boolean sysFlag;

    @Value("${sys.noValue:123}")
    private String sysNoValue;

    @Test
    public void contextLoads() {
        System.out.println(sysName);
        System.out.println(sysAge);
        System.out.println(sysFlag);
        System.out.println(sysNoValue);
    }
}

打印如下所示

book-value
12
true
123

注意的地方

当对应的值不存在时,系统会报错。我们可以给定一个默认值即可。

如下所示:

 @Value("${sys.noValue:123}")
 private String sysNoValue;

@Value("${sys.Value:}")
private String sysNoValue;

在这里,sys.noValue这个值是不存在的,我们可以给定一个默认值为123,当然,我们如果不指定默认值的,它的默认值为空字符串。

优缺点

  • 优点:单个使用方便,灵活性高

  • 缺点:获取配置文件信息多,需要些大量的@Value,不利于开发,增加开发者的工作量

Environment对象

首先我们需要引入 Environment.
如下所示:

@RunWith(SpringRunner.class)
@SpringBootTest
public class BootValueApplicationTests {
    @Autowired
    private Environment environment;

    @Test
    public void getValueByEvi() {
        String name =environment.getProperty("sys.name");
        System.out.println(name);
    }
}

当获取的值不存在时

此时,不会报错,获取的值为空。

 String halo =environment.getProperty("sys.halo");
 System.out.println(halo); // null

@ConfigurationProperties

这种方式常用于 配置的数据较多,封装成一个实体类。

实体类

@Data
@Component
@ConfigurationProperties(prefix = "sys")
public class SysConfig {
    private String name;
    private Integer age;
    private Boolean flag;
}

测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class BootValueApplicationTests {
    @Resource
    private SysConfig sysConfig;

    @Test
    public void getValueByConfigurationProperties() {
        System.out.println(sysConfig.getName());
        System.out.println(sysConfig.getAge());
        System.out.println(sysConfig.getFlag());
    }
}

测试结果如上所示。文章来源地址https://www.toymoban.com/news/detail-546693.html

到了这里,关于【SpringBoot】读取application.yml配置中的三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包