zoukankan      html  css  js  c++  java
  • 获取配置文件yml的@ConfigurationProperties和@Value的区别

    首先,配置文件的事,我没讲properties,这个写中文的时候,会有乱码,需要去Idea里面设置一下编码格式为UTF-8

    还有,我们的类和配置文件直接关联,我用的是ConfigurationProperties的方式,其实还有一个@Value的方式,这个很难用,但是我还是介绍一下

      @Value("${person.name}")
        private String name;
        @Value("#{11*2}")
        private Integer age;
        @Value("false")
        private Boolean boss;

    这里举了三个例子,下面用一张图对比一下@ConfigurationProperties和@Value的区别

    1.功能:这个不说了吧,一个写一次完事,一个@Value每一个字段都要加...

    2.松散绑定:这个是什么意思呢?比如我的yml里面写 last-name,这个和lastName是一样的意思, - 后面跟着的字母默认是大写的,也就是  last-name=lastName

    这个就是松散绑定,@ConfigurationProperties认识这种方式,支持。@Value不认识他。。。

    3.SpEL:这个是啥呢就是我们上面写的数字计算的spring表达式语言 ,年龄age上的 @Value("#{11*2}")  这个是11*2=22岁,@Value可以计算这个,@ConfigurationProperties不支持,不能计算

    4.JSR303数据校验,这个就是我们在字段上写一个@Email 表明这个字段必须符合邮箱的格式才行。这个@ConfigurationProperties是支持的,@Value不支持

    5.复杂类型封装:就比如我们yml里面的map,这个就算复杂类型了,@Value依然不支持....

  • 相关阅读:
    vim 打开了没有权限写入的文件,怎么才能不必重新编辑
    Linux 关闭终端响铃的特性
    Python 的 print 函数
    C 语言标准库中的qsort函数使用
    java知识学习14-面向对象
    java知识学习13-方法
    java知识学习12-数组
    mac格式化重装系统
    java知识学习11- IDEA
    java知识学习10-跳转控制语句(break/continue)、循环嵌套、Random
  • 原文地址:https://www.cnblogs.com/ssjf/p/11446462.html
Copyright © 2011-2022 走看看