yaml

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:  [{},{}]

读取数据

  • 使用@Value读取单个数据
  • 属性名引用方式:
${一级属性名.二级属性名}
//读取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里

//自动装配,将所有的数据对象封装在Environment里
    @Autowired
    private Environment env;
  • getProrerty
System.out.println(env.getProperty("country"));
        System.out.println(env.getProperty("server.port"));
        System.out.println(env.getProperty("likes[1]"));

读取yaml引用类型属性数据(主流)

  • 封装局部数据
  • application.yml
# 创建一个类,用于封装下面的数据
# 由spring帮我们去加载数据到对象中,一定要告诉spring加载这组信息
# 使用时候从spring中直接获取信息使用

datasource:
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/ssm
  username: root
  password: 9999

  • MyDatasource类
  1. 定义数据模型来封装yaml文件中对应的数据
  2. 把他定义为spring能够管理的bean
  3. 指定加载的数据
//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);
posted @ 2023-04-03 21:00  流浪猫老大  阅读(52)  评论(0)    收藏  举报