yaml数据格式
# 端口号
server:
port: 8080
# 数据前面要用空格与冒号隔开
country: china
province: beijing
city: beijing
area: haidian
party: true
birthday: 2023-10-01
likes:
- game
- music
- sleep
us:
- name: cencen
age: 18
- name: lielie
age: 20
users2: [{},{}]
读取数据
${一级属性名.二级属性名}
//读取yaml数据中的单一数据
@Value("${country}")
private String country1;
@Value("${server.port}")
private String port1;
@Value("${likes[1]}")
private String likes1;
@Value("${us[1].age}")
private String age1;
变量引用
# 使用${属性名}引用数据
temDir: ${baseDir}\temp
# 使用引号包裹的字符串,其中的转义字符可以生效
temDir: "${baseDir}\temp \t1 \t2 \t3"
读取yaml全部属性数据
//自动装配,将所有的数据对象封装在Environment里
@Autowired
private Environment env;
System.out.println(env.getProperty("country"));
System.out.println(env.getProperty("server.port"));
System.out.println(env.getProperty("likes[1]"));
读取yaml引用类型属性数据(主流)
# 创建一个类,用于封装下面的数据
# 由spring帮我们去加载数据到对象中,一定要告诉spring加载这组信息
# 使用时候从spring中直接获取信息使用
datasource:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm
username: root
password: 9999
- 定义数据模型来封装yaml文件中对应的数据
- 把他定义为spring能够管理的bean
- 指定加载的数据
//1. 定义数据模型来封装yaml文件中对应的数据
//2. 把他定义为spring能够管理的bean
@Component
// 3.指定加载的数据
@ConfigurationProperties(prefix = "datasource")
@Data
public class MyDatasource {
private String driver;
private String url;
private String username;
private String password;
}
// 定义MyDatasource的对象
@Autowired
private MyDatasource myDatasource;
System.out.println(myDatasource);