SpringBoot详细讲解yaml配置文件的用法

作者:鸣鼓ming 时间:2022-04-21 16:29:33 

1.基本语法

  • key: value;kv之间有空格

  • 大小写敏感

  • 使用缩进表示层级关系

  • 缩进不允许使用tab,只允许空格

  • 缩进的空格数不重要,只要相同层级的元素左对齐即可

  • '#'表示注释

  • 字符串无需加引号,如果要加,单引号’'、双引号""表示字符串内容会被 转义、不转义

2.数据类型

1.字面量:单个的、不可再分的值。date、boolean、string、number、null

k: v

2.对象:键值对的集合。map、hash、set、object

#行内写法:  

k: {k1:v1,k2:v2,k3:v3}

#或

k: 
  k1: v1
  k2: v2
  k3: v3

3.数组:一组按次序排列的值。array、list、queue

#行内写法:  

k: [v1,v2,v3]

#或者

k:
 - v1
 - v2
 - v3

3.代码测试

User

package com.limi.springboottest2.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
   private String userName;
   private Integer age;
   private String gender;
}

Entity1

package com.limi.springboottest2.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@ConfigurationProperties(prefix = "entity1")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
public class Entity1 {
   private Double number;
   private List<String> array;
   private User user;
   private Map<String, Integer> map;
   private String str0;
   private String str1;
   private String str2;
}

application.yml

entity1:
  number: 11
  array: ["apple", "peach", "orange"]
  user: {userName: "lily", }
  map: {"Math": 100,"English": 98,"Art": 8}
#对比字符串变量不使用引号、使用单引号、双引号的区别
  str0: \n 666
  str1: '\n 666'
  str2: "\n 666"

HelloController

package com.limi.springboottest2.controller;
import com.limi.springboottest2.entity.Entity1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
   @Autowired
   private Entity1 entity1;
   @GetMapping("/test1")
   @ResponseBody
   void test1() {
       System.out.println(entity1);
   }
}

测试结果

SpringBoot详细讲解yaml配置文件的用法

可以看到

  • 不使用引号和使用单引号的字符串: n 666 中的\n是直接输出\n

  • 使用双引号的字符串: \n 666 中的\n是输出为换行符

4.开启补全提示

就是下图的效果

SpringBoot详细讲解yaml配置文件的用法

自定义的类和配置文件绑定一般没有提示。若要提示,添加如下依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-configuration-processor</artifactId>
   <optional>true</optional>
</dependency>
<!-- 下面插件作用是工程打包时,不将spring-boot-configuration-processor打进包内,让其只在编码的时候有用 -->
<build>
   <plugins>
       <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <configuration>
               <excludes>
                   <exclude>
                       <groupId>org.springframework.boot</groupId>
                       <artifactId>spring-boot-configuration-processor</artifactId>
                   </exclude>
               </excludes>
           </configuration>
       </plugin>
   </plugins>
</build>

来源:https://blog.csdn.net/qq_41865229/article/details/125220195

标签:SpringBoot,yaml,配置文件
0
投稿

猜你喜欢

  • jar包运行时提示jar中没有主清单属性的解决

    2023-11-23 19:04:10
  • Springboot 整合RabbitMq(用心看完这一篇就够了)

    2023-11-23 05:27:17
  • Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)

    2023-01-05 13:49:34
  • Spring-Data-JPA整合MySQL和配置的方法

    2023-10-29 10:19:41
  • 基于sharding-jdbc的使用限制

    2023-09-01 12:33:58
  • java实现大文件分割与合并的实例代码

    2023-11-11 04:31:21
  • Spring MVC 使用支付宝接口完成在线支付的示例代码

    2023-11-29 04:07:55
  • C#几种截取字符串的方法小结

    2023-07-16 09:55:10
  • SpringBoot配置shiro安全框架的实现

    2023-09-07 19:55:38
  • Java设计模式之单例和原型

    2023-11-29 04:14:18
  • AndroidStduio3.0 使用gradle将module打包jar文件的方法

    2023-07-01 06:57:20
  • Java设计模式之工厂模式

    2023-12-18 01:40:50
  • Mybatis拦 截 器实现数据权限的示例代码

    2023-11-19 20:15:04
  • Android使用xUtils3.0实现文件上传

    2023-08-04 19:50:02
  • SpringBoot配置GlobalExceptionHandler全局异常处理器案例

    2023-06-11 12:14:36
  • SpringBoot获取配置文件内容的几种方式总结

    2023-11-24 18:10:48
  • java使用jdbc操作数据库示例分享

    2023-10-29 13:54:21
  • java的泛型你真的了解吗

    2022-07-25 09:40:06
  • 详解Flutter中视频播放器插件的使用教程

    2023-06-15 23:47:31
  • Servlet3.0实现文件上传的方法

    2023-08-15 00:52:44
  • asp之家 软件编程 m.aspxhome.com