zoukankan      html  css  js  c++  java
  • springboot系列(三)配置文件详解

    引言:
    Springboot有一个全局配置文件,这个配置文件默认是properties文件,就是application.properties文件,其实还有一种文件,就是yml文件,只不过这种文件是需要自己创建的。这个配置文件是用来修改Springboot的默认配置的。比如说当我们集成了start-web之后,Springboot默认的web服务器是Tomcat,我们可以对Tomcat的默认配置做一些处理。配置文件能做的事情很多,语法也很简单。

    properties 文件

    1.语法

    key=value

    比如配置Tomcat的端口:server.port=8081
    对大小写敏感。

    2.优先级

    一般情况下,properties可以在项目的4个地方存在,然后他们每个位置有不同的优先级,并且,不同名的时候application.properties的优先级是最高的,就是说,Springboot启动的时候,他会自己扫描指定路径下面的application.properties文件作为默认的配置文件。
    扫描的包路径按照优先级有下面四个:

    1. file:./config/
    2. file:./
    3. classpath:/config/
    4. classpath:/

    这么一说,你可能不知道在哪,来张图看看,第一个就是项目根目录下面的config文件下面的,第二个就是根目录下面的,第三个就是resources文件下面的config文件下面的,最后一个是resources文件下面的。

    在这里插入图片描述

    按照这个优先级,Springboot启动的时候会扫描这些包,然后将配置植入spring环境中,如果遇到相同的配置,优先级高的会覆盖优先级低的配置,比如说你有四个文件,四个文件里面都配置了项目启动端口,那么这个端口的配置只会用优先级最高的那个文件的配置。遇到不同的配置,这些配置就会互补,形成最大化的配置。

    我们还可以通过spring.config.location 来改变默认的配置文件位置。但是需要先打包项目,这一块就留着后面再说,我会持续更新!你也可以wx search 全栈学习笔记!精彩美文每天推送!

    3.自定义数据配置

    配置文件除了能修改一些原本固有的配置,还能自定义配置。
    自定义对象数据:

    在这里插入图片描述
    先定义一个student的对象,对象里面包含了常用的数据类型。

    自定义的实体类:

    在这里插入图片描述

    如果遇到java的驼峰命名,在properties文件里面的命名就比较宽松,比如java里面用studentName,我在properties里面既可以用studentName,也可以用student-name,或者是student_name,都行。
    这就是自定义数据的配置。下面看看怎么获取这些数据。

    4.获取自定义数据配置

    在配置文件中,有一些配置是springboot可以直接获得的,有一些是不能获取的,比如自定义的配置,像server.port这种属于原本有的默认配置,我们是做修改的。如果我们自定义了一些配置,就像上面我们定义的一些数据,就需要用其他方法获取了。

    properties: 字符串默认不用加上单引号或者双引号
    '' 单引号,会转义特殊字符
    "" 双引号不会转义特殊字符
    yml也是一样

    项目结构图:

    在这里插入图片描述

    1.通过prefix获取

    实体类的代码:

    在这里插入图片描述

    说明:将properties里面的student绑定到这个实体类上面,它会一一对应,这个源代码应该是用的反射和注解,反射,注解不会的可以看看我之前的文章哦!都是干货。

    controller里面的测试代码:

    在这里插入图片描述
    代码填写完成之后重新运行环境然后查看你的运行端口,我的运行端口是8086
    在这里插入图片描述
    在浏览器输入:http://localhost:8085/student/getStudent

    然后就能看到获取到数据了,获取到的数据:

    在这里插入图片描述

    但是你会看到这个数据获取到的中文是乱码,在idea里面需要设置一下。file->settings

    在这里插入图片描述

    设置完成点apply,这样好像原来的中文就是乱码了,然后你需要重新改回来,再重新启动项目就不会乱码了。

    2.通过@value注解获取

    在这里插入图片描述

    这样显示的结果是只能获取到一个name,$是一个占位符号,利用这种语法,需要对实体类的每个属性一一对应,比较麻烦。建议使用第一种方法。

    yml文件

    1.语法

    key空格:空格value

    注意:空格不能少,大小写敏感
    利用缩进代表层级关系,只要是缩进一样就代表是一级的

    2.优先级

    在既有yml文件也有properties文件的时候(其实还有一种yaml,和yml差不多的),yml加载顺序是先于properties的,所以优先级是properties大于yml,然后其他的情况下的优先级和properties文件是一样的。

    3.自定义数据配置。

    自定义数据的和properties文件差不多。写法上稍微有点差异,但是它的功能相对来说比较强大,代码简洁,可读性高。
    在这里插入图片描述

    4.获取自定义数据配置

    1.通过prefix

    不管是yml,还是properties文件,获取数据集都是一样用法。

    2.通过@value注解获取

    同上properties文件获取的方式。

  • 相关阅读:
    win7 powershell版本过低问题
    使用VirtualBox + Vagrant打造统一的开发环境
    Windows中查看PowerShell版本和virbox版本,vagrant 版本
    Please upgrade the installed version of powershell to the minimum required version and run the command again.
    PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)
    PHP实现redis限制单ip、单用户的访问次数功能
    错误信息:FATAL: No bootable medium found! System halted.
    VirtualBox下安装ubuntu server 16.04
    我的arcgis培训照片13
    我的arcgis培训照片12
  • 原文地址:https://www.cnblogs.com/swzx-1213/p/12641842.html
Copyright © 2011-2022 走看看