作者
:学Java的冬瓜
博客主页
:☀冬瓜的主页🌙
专栏
:【Framework】
主要内容
:.properties 配置文件和 .yml 配置文件中 配置信息的设置和获取。关于IDEA乱码的解决。.yml 配置文件的 方式语法分析和演示。 .yml配置文件 在不同平台上的配置规则。
文章目录
一、关于配置文件的说明
springboot的 配置文件有两种格式
.properties
和.yml(yaml)
两种。
.properties 格式使用键值对的方式,更加简单易理解,默认优先级高于.yml,但是仅能在Java中使用。
.yml 格式使用特定的格式,类似 json,更加灵活,支持的数据表示类型更多,支持多种语言中使用。
二、SpringBoot配置文件格式
格式一:.properties类型配置文件
1、设置和获取配置信息
A:在配置文件中添加配置
.properties使用key=value
的格式。用来配置信息。
配置项:1> 系统配置项 (如server.port=“端口号”),key使用系统提供的; 2> 用户自定义项,key由用户自定义。如下图
B:获取配置信息
在当前项目目录的demo目录或者demo目录的子目录下创建一个类,用来获取配置信息。
@Component设置五大类注解,确保存储到spring中。
@ResponseBody:可以在类(方法)上加上该注解,设置当前类或者方法返回值是非静态页面的数据。
@RequestMapping:设置路由路径。
注意:获取key对应的value
:使用@Value("${键}")
作为注解,在下一行写属性,类似于依赖注入,如下图。
C:测试结果
启动项目后,在浏览器访问路径: http://www.localhost:8080/test/configRun,得到下面的页面,获取到了端口号value:8080这个值:
2、关于乱码的处理
补充:在配置文件中,注释信息乱码的问题:
在当前项目和新项目的settings里都设置编码:进入settings里,输入encoding,出现下面的界面,把下面三项都改成utf8
3、.properties和 .yml配置方式区别
A:简单程度:.properties键值对的方式,简单易理解,易操作,是系统默认的配置方式。.yml方式则比较灵活,代码更加简洁,但新手易出错。
B:支持的数据类型限制: .properties无法支持一个对象,一个数组的设置配置信息。yml可以。
C:支持的语言: 仅支持Java,不能在其他语言使用。yml可以在很多种语言中使用,java,php,python,Golang,js等。
格式二:.yml(yaml)类型配置文件
yml是YAML的缩写,全称是Yet Another Markup Language。翻译为另一种标记语言。
1、设置和获取配置信息
A:在配置文件中添加配置 :
yml语法格式:
B:获取配置信息
和.properties的获取配置信息的方法一样,使用@Value和下一行使用一个属性接收 key的 value值。
C:测试结果
启动项目后,在浏览器访问路径: http://www.localhost:9999/test/configRun,得到下面的页面,获取到了car.body.tire的value:255这个值。
2、.yml 配置格式语法分析
yml可以支持字符串,对象,数组,集合。
A:字符串表示
有三种,无引号,单引号,双引号。
无引号和单引号 获取配置信息时,是所见即所得。
双引号会正确解析value中的特殊字符,如下图中的\n。
B:yml方式配置和读取一个类对象
配置对象如下:
读取对象如下:
1> 创建一个实体类,这个类上使用@ConfigurationProperties("student")
,注明这是一个配置在.xml中的类。
2> 在student类上添加五大类注解和Getter和Setter方法。这个student类需要在ControllerTest2类中使用依赖注入的方式获取到ControllerTest2类。因此需要在实体类student上添加五大类注解。还得提供set和get方法,这个就使用Lombok提供的注解在实体类上加。
3> 在ControllerTest2类里面使用依赖注入的方式获取到 配置信息中的类 student,并在ControllerTest2初始化的时候进行 student对象的 打印。
4> 运行程序,显示结果,初始化时执行doPostConstruct方法。
3、.yml 不同平台配置规则
注意1:SpringBoot不同平台的配置规则:
1> 必须有主配置文件application.yml(或.properties)
2> 不同平台的配置文件,每个平台有一个配置文件,名是application-xxx.yml
(或.properties)。
注意2:一个项目要从无到有,到上线,至少有三个步骤:开发->测试->生产
所有阶段的配置信息相同的 配置放在application.yml
,每个阶段互不相同的配置信息则放在各自的yml里。
注意3:可以在主配置中 设置
application-xxx.yml
文件使用哪一个。如下图就是指定使用application-xxx.yml
这个文件。这时候,在dev文件设置的端口号就是项目启动时用到的端口号。