美文网首页Spring Boot
yaml语法和属性绑定

yaml语法和属性绑定

作者: 逆风g | 来源:发表于2020-11-18 15:02 被阅读0次

SpringBoot使用一个全局的配置文件,文件名固定,二选一即可:

  • application.properties
  • application.yml

1. 基本语法

样例:

server:
     port: 8080
  • k: v:表示一对键值对(冒号后的空格必须有)。
  • 且以空格的缩进控制层级关系,只要是左对齐的一列数据,都属于同一层级。
  • 大小写敏感。
  • 字符串不用加上单引号或双引号。
  • 对象、map:
friends:
   lastName: zhangsan
   age: 20

或者friends: {lastName: zhangsan,age: 18}

  • 数组:
pets:
  - cat
  - dog
  - pig

或者pets: [cat,dog,pig]

2. 属性绑定

yml文件内容:

person:
  name: zhangsan
  age: 20
  list: 
    - name: xiaobai
      age: 2
    - name: xiaohua
      age: 3

待绑定java对象:
核心@ConfigurationProperties(prefix = "person"),代表从yml文件中的person字段中拿数据。

//添加到容器中,以便@Autowired直接从容器中拿person对象
@Component
//从yml文件中绑定属性
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private List<HashMap> list;

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", list=" + list +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public List<HashMap> getList() {
        return list;
    }

    public void setList(List<HashMap> list) {
        this.list = list;
    }
}

person对象打印结果为:
Person{name='zhangsan', age='22', list=[{age=13, name=xiaobai}, {age=11, name=xiaolizi}]}

3. 配置文件处理器

编写配置文件时会有提示。pom文件导入插件:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

4. @value

@value可以单独的为某个属性绑定配置文件得值,而@ConfigurationProperties为批量式绑定。

@Controller
public class HelloController {
    //属性绑定
    @Value("${person.name}")
    String personName;
    //SpEL
    @Value("#{23-3}")
    String age;
    @Autowired
    Person person;
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        System.out.println(person);
        return personName+age;
    }
}

此处将会返回:张三20

相关文章

  • yaml语法和属性绑定

    SpringBoot使用一个全局的配置文件,文件名固定,二选一即可: application.properties...

  • angular--数据绑定

    数据绑定几种语法: 事件绑定: 属性绑定和插值绑定是一样的: HTML属性和DOM属性的关系: HTML属性绑定:...

  • 2020-01-23

    绑定属性: *v-bind:动态绑定属性 语法糖:“:” 对象语法,数组语法

  • angular-2

    angular基础模板语法 文本绑定 {{}} html绑定 [innerHTML]="xxx" 属性绑定 [属性...

  • 3. Angular 语法

    1. 模板语法 1. 属性绑定 [] // 把value 属性绑定到表达式firstName // 把属性(...

  • v-bind之动态绑定

    1. v-bind 绑定基本属性 动态绑定img的src属性 动态绑定a的href属性 等等 语法糖写法(简写):...

  • 小程序快速入门:wxml的使用

    基本语法 基本语法如下: 几个特点:1.严格闭合2.属性名和绑定数据大小写敏感3.数据绑定必须使用双大括号4.属性...

  • VSCode插件推荐之k8s开发

    YAML插件YAML提过对 *.yaml和 *.yml 文件提供语法着色、语法校验、自动完成和格式化等等功能。 D...

  • 框架视图层(二)

    wxml 数据绑定1.简单绑定。Mustache 语法双括号包裹变量,组件属性、控制属性、关键字变量绑定需要在双引...

  • vue学习笔记:一、vue基础语法

    1、模板语法 Mustache语法:{{ msg }} Html赋值:v-html=“” 绑定属性:v-bind:...

网友评论

    本文标题:yaml语法和属性绑定

    本文链接:https://www.haomeiwen.com/subject/jpatiktx.html