当前位置: 首页 > news >正文

建设微信商城网站制作单页网站在线生成

建设微信商城网站制作,单页网站在线生成,申请电子邮箱免费注册,搭建网络环境yaml语法学习 1、配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :keyvalue application.yml 语法结构 :key:空格 value 配置文件的作用:修改SpringBoot自动…

yaml语法学习

1、配置文件

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

  • application.properties

    • 语法结构 :key=value
  • application.yml

    • 语法结构 :key:空格 value

配置文件的作用:修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!

server:port: 8081

SpringBoot内置属性查询:官方文档地址

2、YAML/YML

yaml概述

  • YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)

  • 这种语言以数据作为中心,而不是以标记语言为重点!

  • 以前的配置文件,大多数都是使用xml来配置;比如一个简单的端口配置,我们来对比下yaml和xml

    • 传统xml配置:

      <server><port>8081<port>
      </server>
      
    • yaml配置:

      server:prot: 8080
      

yaml基础语法

说明:语法要求严格!

  1. 空格不能省略

  2. 以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的

  3. 属性和值的大小写都是十分敏感的

  4. #号表示注释

字面量:普通的值 [ 数字,布尔值,字符串 ]

  • 字面量直接写在后面就可以 , 字符串默认不用加上双引号或者单引号;k: v

    注意:

    • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;

      比如 :name: “kuang \n shen” 输出 :kuang 换行 shen

    • ‘’ 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出

      比如 :name: ‘kuang \n shen’ 输出 :kuang \n shen

对象、Map(键值对)

#对象、Map格式
k: v1:v2:

在下一行来写对象的属性和值得关系,注意缩进;比如:

student:name: limingage: 3

行内写法

student: {name: qinjiang,age: 3}

数组和对象数组( List、set )

用 - 值表示数组中的一个元素,比如:

#数组
pets:- cat- dog- pig
#对象数组
users:- name: Tomage: 4- name: Jerryage: 5

行内写法

#数组
pets: [cat,dog,pig]
#对象数组
users[{name: Tom,age: 4},{name: Jerry,age: 5}]

注入配置文件

yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值!

yaml注入配置文件

  1. 在springboot项目中的resources目录下新建一个文件 application.yml

  2. 编写一个实体类 Dog;

    package nuc.ss.pojo;@Component  //注册bean到容器中
    public class Dog {private String name;private Integer age;//有参无参构造、get、set方法、toString()方法  
    }
    
  3. 思考,我们原来是如何给bean注入属性值的!@Value,给狗狗类测试一下:

    @Component //注册bean
    public class Dog {@Value("阿黄")private String name;@Value("18")private Integer age;
    }
    
  4. 在SpringBoot的测试类下注入狗狗输出一下;

    @SpringBootTest
    class Springboot02ConfigApplicationTests {@Autowiredprivate Dog dog;@Testvoid contextLoads() {System.out.println(dog);}}

    结果成功输出,@Value注入成功,这是我们原来的办法对吧。

  5. 我们在编写一个复杂一点的实体类:Person 类

    @Component //注册bean到容器中
    public class Person {private String name;private Integer age;private Boolean happy;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog;//有参无参构造、get、set方法、toString()方法  
    }
    
  6. 我们来使用yaml配置的方式进行注入,大家写的时候注意区别和优势,我们编写一个yaml配置!

    person:name: limingage: 3happy: falsebirth: 2000/01/01maps: {k1: v1,k2: v2}lists:- code- girl- musicdog:name: 旺财age: 1
    
  7. 我们刚才已经把person这个对象的所有值都写好了,我们现在来注入到我们的类中!

    /*
    @ConfigurationProperties作用:
    将配置文件中配置的每一个属性的值,映射到这个组件中;
    告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
    参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
    */
    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person {private String name;private Integer age;private Boolean happy;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog;//有参无参构造、get、set方法、toString()方法
    }
  8. 确认以上配置都OK之后,我们去测试类中测试一下:

    @SpringBootTest
    class Springboot02ConfigApplicationTests {@Autowiredprivate Person person;@Testvoid contextLoads() {System.out.println(person);}}

    结果:所有值全部注入成功!

加载指定的配置文件

  • @PropertySource :加载指定的配置文件;
  • @configurationProperties:默认从全局配置文件中获取值;
  1. 我们去在resources目录下新建一个person.properties文件

    name=kuangshen
    
  2. 然后在我们的代码中指定加载person.properties文件

    @PropertySource(value = "classpath:person.properties")
    @Component //注册bean
    public class Person {@Value("${name}")private String name;......  
    }
    
  3. 再次输出测试一下:指定配置文件绑定成功!

配置文件占位符

配置文件还可以编写占位符生成随机数

person:name: liming${random.uuid}age: ${random.int}happy: falsebirth: 2020/07/13maps: {k1: v1,k2: v2}lists:- code- music- girldog:name: ${person.hell:hello}_旺财age: 3

回顾properties配置

  • 我们上面采用的yaml方法都是最简单的方式,开发中最常用的;
  • 也是springboot所推荐的!
  • 那我们来唠唠其他的实现方式,道理都是相同的;写还是那样写;配置文件除了yml还有我们之前常用的properties , 我们没有讲,我们来唠唠!

【注意】properties配置文件在写中文的时候,会有乱码 , 我们需要去IDEA中设置编码格式为UTF-8;settings–>FileEncodings 中配置;

对比小结

@Value这个使用起来并不友好!我们需要为每个属性单独注解赋值,比较麻烦;我们来看个功能对比图

@ConfigurationProperties@Value
功能批量注入配置文件中的属性一个个指定
松散绑定支持不支持
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持
  1. @ConfigurationProperties只需要写一次即可 , @Value则需要每个字段都添加

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

  3. JSR303数据校验 , 这个就是我们可以在字段是增加一层过滤器验证 , 可以保证数据的合法性

  4. 复杂类型封装,yml中可以封装对象 , 使用value就不支持

结论:

  • 配置yml和配置properties都可以获取到值 , 强烈推荐 yml

  • 如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下 @value;

  • 如果说,我们专门编写了一个JavaBean来和配置文件进行一一映射,就直接@configurationProperties,不要犹豫!

http://www.15wanjia.com/news/194519.html

相关文章:

  • 网站建设的cms系统美团推广平台
  • 网站建设市场数据分析旅游网站建设与网页设计意义
  • 自己做网站的意义百度seo免费推广教程
  • 三明做网站公司最常访问的网址
  • 测评网站架构机械行业网站建设
  • 青岛网站建设市场网站开发保密协议模板
  • 货源网站开发走着瞧网站 设计
  • 佛山网站营销推广怎么确定网站关键词
  • 河南企业做网站wordpress 的图片保存在哪
  • 网站底部html代码如何自建企业网站
  • 网站开发发展趋势怎么制作ppt课件
  • 企业网站网址适合个人做的网站有哪些
  • 网站备案账户名如何查询漯河网站建设lhwzzz
  • vue 做门户网站企业管理10大系统
  • 杭州网站推广优化公司找人做网站维护多少钱
  • 网站地图的制作做古风文字头像的网站
  • 怎样做淘宝联盟网站温州注册网络公司哪家强
  • dw做的网站怎么让别人看到字画网站建设
  • 网站制作公司资质深圳注册公司怎么注册
  • 做什么网站好厂房外墙设计效果图
  • 网站建设与管理规定织梦网站优化教程
  • 部队网站建设设计网站建设理念
  • 自己建设网站需要什么条件网站二次备案
  • 网站建设属于哪个行业如何说服老板做网站
  • 官网网站开发电商类网站开发合同书
  • 河南省建设工程质量安全监督网站餐饮美食网站建设需求分析
  • 成都网站开发外包公司旅游网站前端模板
  • 自己做网站的劣势建设银行网站 诚聘英才 频道
  • 自助建站网信息发布平台建设网站的目标和作用
  • 重庆新闻第一眼中小企业网站seo