springboot系列:yamlproperties两配置文件介绍及使用|超级详细,建议收藏

Posted bug菌¹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot系列:yamlproperties两配置文件介绍及使用|超级详细,建议收藏相关的知识,希望对你有一定的参考价值。

👨‍🎓作者:bug菌

✏️博客:CSDN掘金

💌公众号:猿圈奇妙屋

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

         嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

       小伙伴们在批阅文章的过程中如果觉得文章对您有丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章 点亮👍吧,您的点赞三连( 收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

        续上一篇咱们已经搭建好了一个springboot框架雏形。但是很多初学的小伙伴私信bug菌说,在开发项目中,为啥.yaml的配置文件也能配置,SpringBoot 是提供了两种2 种全局的配置文件嘛,这两种配置有何区别,能否给大家伙讲讲。一看这位小伙伴就非常好学啊,继续保持。

二、概念 🔥

        创建Spring Boot项目时,默认 resources 目录下就有一个application.properties 文件,可以在 application.properties 文件中进行项目配置,但是这个文件并非唯一的配置文件,

1️⃣配置优先级

在 Spring Boot 中,一共有 4 个地方可以存放该配置文件,并按照如下优先级依次降低,如下:

  1. 当前项目根目录的config下
  2. 当前项目根目录下
  3. resource目录的config目录下
  4. resource目录下

2️⃣配置种类

SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。

  • application.properties
  • application.yml

3️⃣语法

  • application.properties:

        语法:key=value 或行内写法(k: v;[Set/List/数组];map,对象类型的属性,并且[]可以省,但是不能省)。

比如上一篇提到的配置端口号:

#指定运行端口
server.port=8080
  • application.yml :

        yaml ainot myarkup language ,不是一个标记文档。key:  value

注意:yml默认可以不写引号,""(双引号)会将其中的转义符进行转义,其他的(单引号啥的)不会。

三、properties实践 🔥

1、公共配置文件:application.properties(注意,此处取名别直接name,会跟系统默认的重名,所以;取名userName即可以示区分。)

user.userName=bug菌
user.sex=男
user.age=18

然后通过@Value 注解将这些属性注入,演示如下:

@Value("$user.userName")
private String userName;
@Value("$user.sex")
private String sex;
@Value("$user.age")
private Integer age;

@GetMapping("/hello1")
public String index() 
    return "我是"+userName+",性别:"+sex+",我今年"+age+"岁啦!";

或者创建一个user类,然后将属性值注入;

@Component
public class User 

    @Value("$user.userName")
    private String userName;
    @Value("$user.sex")
    private String sex; 
    @Value("$user.age")
    private Integer age;

public String getUserName() 
    return userName;

public void setUserName(String userName) 
    this.userName = userName;
    public String getSex() 
        return sex;
    
    public void setSex(String sex) 
        this.sex = sex;
    
    public Integer getAge() 
        return age; 
       public void setAge(Integer age) 
        this.age = age;
   

@Autowired
private User user;

@GetMapping("/hello2")
public String test() 
    return "我是"+user.getName()+",性别:"+user.getSex()+",我今年"+user.getAge();

 然后分别访问如下接口地址:

http://localhost:8080/test/hello1;可以看到可成功获取到我们所定义的属性内容。

再来访问下接口2: http://localhost:8080/test/hello2

ps:如果遇到打印出的中文乱码,如下所示,不要慌;bug菌教你怎么解决;好伐。

针对如下乱码问题截图: 

        解决办法:应该是编辑器的问题,默认是GBK;你直接左上角File->Settings->File Encodings然后按如下设置即可。

        以上就是application.properties配置文件的使用情况;另外有兴趣的同学还可以去试试八大类型的其他几种类型;bug菌此处就不一一赘述啦。提示:都跟上边是一样的玩法,唯独就是写法不太一样。

拓展:

#多行写法
student:
  name: "Li Ming"
  age: 18
#多行写法
person:
   - man
  - women
#单行的行内写法
person: [man,women]

四、application.yaml实践 🔥

语法与.properties稍微不太一样;[key: value];

user:
  userName: 刘亦菲
  sex: 女
  age: 20

注意:yml默认可以不写引号,“”(双引号)会将其中的转义符进行转义,其他的(单引号啥的)不会。

测试一下:http://localhost:8080/test/hello1

 使用yml需要注意一下几点:

  • 不同“等级” 用冒号隔开
  • 次等级的前面是空格,不能使用制表符(tab)
  • 冒号之后如果有值,那么冒号和值之间至少有一个空格,避免紧贴
  • 要么用application.properties 要么用 application.yml,不要都用使自己混乱

拓展:例如:对象写法+数组写法等复合型语法。感兴趣的同学可以尝试看看。

person:
  name: zhangsan
  age: 30
  pets:
    -dog
    -cat
    -pig
  car:
    name: QQ
  child:
    name: zhangxiaosan
    age: 2

五、两种配置文件如何选择 🔥

1、当properties和yml同时存在时,properties的优先级会比yml高(记忆技巧:这个世界上,谁长,谁NB)。

2、两种文件都是用#注释。

3、yml的优点在于可以省去一下重复代码。

4、在properties文件里面的 “ .” 连接在yml文件里面全部换成 ":" 进行连接,并且每一级之间必须换行,在第二级开始应该进行一个Tab键的缩进,如果是同级的就不需要进行缩进。

5、在yml文件里面如果是需要进行赋值那么必须是要在 ":" 后面进行一个空格键的缩进。

6、在yml文件里面所有的配置,相同级别只能出现一次,比如我们使用了spring这个级别,那么我们在后边进行spring级别的配置的时候就必须在这个地方进行,不能在写一个spring级别。

至于如何选择,想必你们心中都有答案了吧!

       ... ...

       ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

六、文末🔥

        如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

       我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

        最后送大家两句我很喜欢的话,与诸君共勉!


☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。

🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。


​​​

💌如果文章对您有所帮助,就请留下您的吧!(#^.^#);

💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;

💗如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;

💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);

💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。

以上是关于springboot系列:yamlproperties两配置文件介绍及使用|超级详细,建议收藏的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot系列优雅的处理统一异常处理与统一结果返回

Springboot系列 集成接口文档swagger,使用,测试

Springboot系列 集成接口文档swagger,使用,测试

springboot整合系列

springboot整合系列

SpringBoot 系列