1.配置是有顺序的
2.不能自定义 例:book.yml
3.有明显的层级关系
server:
port: 8081
tomcat:
accesslog:
enabled: true
而且key-value是有空格的
关于数组和对象的注入
package org.javax.demo01;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
/**
* @ClassName: Book
* @Author: XIAO_骁
* @Date: 2022/4/25 11:08
* @Description: TODO
*/
@Component
@ConfigurationProperties(prefix = "book")
public class Book {
private String name;
private List authors;
private String[] tags;
private List categories;
public List getCategories() {
return categories;
}
public void setCategories(List categories) {
this.categories = categories;
}
public String[] getTags() {
return tags;
}
public void setTags(String[] tags) {
this.tags = tags;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List getAuthors() {
return authors;
}
public void setAuthors(List authors) {
this.authors = authors;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", authors=" + authors +
", tags=" + Arrays.toString(tags) +
", categories=" + categories +
'}';
}
}
package org.javax.demo01;
/**
* @ClassName: author
* @Author: XIAO_骁
* @Date: 2022/4/25 16:02
* @Description: TODO
*/
public class author {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "author{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
book:
name: 水浒传
authors:
- name: 罗贯中
age: 68
- name: 曹雪芹
age: 58
tags:
- 奇幻
- 古典
categories:
- 小说
- 历史
package org.javax.demo01;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Demo01ApplicationTests {
@Autowired
Book book;
@Test
void contextLoads() {
System.out.println("book " + book);
}
}
从实体类到yml文件是根据get set方法进行对应的,与变量的名字无关,就算将 private String name;变成private String aaa;只要get set名字不变就可以注入,这一就是变量为什么首字母小写(和yaml没有关系)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)