springboot系列(三)配置文件详解

引言:
Springboot有一个全局配置文件,这个配置文件默认是properties文件,就是application.properties文件,其实还有一种文件,就是yml文件,只不过这种文件是须要本身建立的。这个配置文件是用来修改Springboot的默认配置的。好比说当咱们集成了start-web以后,Springboot默认的web服务器是Tomcat,咱们能够对Tomcat的默认配置作一些处理。配置文件能作的事情不少,语法也很简单。java

properties 文件

1.语法

key=valueweb

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

2.优先级

通常状况下,properties能够在项目的4个地方存在,而后他们每一个位置有不一样的优先级,而且,不一样名的时候application.properties的优先级是最高的,就是说,Springboot启动的时候,他会本身扫描指定路径下面的application.properties文件做为默认的配置文件。
扫描的包路径按照优先级有下面四个:浏览器

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

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

在这里插入图片描述

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

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

3.自定义数据配置

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

在这里插入图片描述
先定义一个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文件获取的方式。

相关文章
相关标签/搜索