SpringBoot配置文件

发布时间:2023-05-08 09:40:30

1.配置文件的作用

配置文件在整个项目中非常重要,例如

Servlet将配置信息写入数据库的连接信息(用户名密码),项目启动时仍需读取配置信息

项目启动端口,当项目端口被占用时,端口信息可以通过配置文件直接修改。linux可以使用命令查看被占用端口的过程。windows比较复杂,有时很难找到。通过配置文件修改项目端口号更方便

第三方系统调用密钥等信息。第三方系统发布的密钥存储在配置文件中。密钥直接写在程序中,打包成class文件,不能修改,不安全。代码下载后,获得密钥。配置文件可以放在云中分离,提高了安全性。配置文件也方便维护人员修改.

普通日志和异常日志用于发现和定位问题

2.配置文件格式

Springboot配置文件有两种格式

1.properties(默认)

2.yml(yaml)

SpringBoot配置文件_spring

这两个配置文件在功能上可以存在于同一个项目中。如果配置了相同的属性,properties的优先级高于yml,但properties配置信息加载后也会加载yml配置信息

虽然可以共存,但在实际开发中通常采用统一的方法,有利于维护

3.配置文件说明properties配置文件说明

基本语法:k=v形式配置

多个配置文件,换行写

分为

1.系统配置项(用于Spring),如端口号,server.port=8080/spring.datasource.url...

2.用户自定义配置项(非系统配置项):用户定制的key

properties:

SpringBoot配置文件_java_02

这里的中文重新打开后会乱码...或者没有乱码,但重启后乱码(重启前IDEA有缓存,可能不会乱码)

SpringBoot配置文件_spring_03

如果你写了很多注释,重启后所有的乱码都会很不舒服

注释乱码的原因:

编码格式:项目启动后无法修改

SpringBoot配置文件_spring_04

解决方案:点击settings将所有选项修改为UTF8后应用程序,新项目默认支持中文.

SpringBoot配置文件_配置文件_05

本项目仍不支持,本项目的编码格式无法修改

删除原始properties文件,重新创建properties文件,支持中文

SpringBoot配置文件_数据库_06

yml可以修改编码格式,默认为UTF8,支持中文

SpringBoot配置文件_spring_07

设置项目端口号

SpringBoot配置文件_java_08

控制台打印端口号

SpringBoot配置文件_java_09

SpringBoot配置文件_spring boot_10

 

注释当前配置信息,使用yml配置,yml配置信息生效

 

SpringBoot配置文件_配置文件_12

t上还说,有相同的项目,以properties的配置信息为准, 其优先级高于yml

删除注释并启动项目将发现端口号仍然是9090

SpringBoot配置文件_配置文件_13

注:配置项每次修改后,都要重启项目,不启动就不会生效

读取配置文件

在项目中,应主动阅读配置文件的内容,并使用@Value注释

@使用${}格式读取Value

SpringBoot配置文件_spring boot_14

 

SpringBoot配置文件_spring boot_15

SpringBoot配置文件_配置文件_16

结果不是hellozhangsan

因为读取配置文件的内容有一个固定的格式,所以写作相当于给name赋值studentname字符串 ,未读取配置项

SpringBoot配置文件_数据库_17

SpringBoot配置文件_spring_18

因此,只有遵守协议,才能阅读配置文件的内容

SpringBoot配置文件_配置文件_19

读取成功

SpringBoot配置文件_java_20

使用此格式,如果没有此配置项,启动时会报错

SpringBoot配置文件_配置文件_21

SpringBoot配置文件_java_22

因为这个本质还是DI,项目启动的时候容器会加载,加载的时候会设置属性,检测key值是否是student。如果没有发现key值,就会报错。

注意阅读配置文件:格式 ${key}

还可以读取系统配置信息

 

SpringBoot配置文件_spring boot_24

properties优势

1.系统默认配置文件

2.优先级比yml高

3.格式简单

缺点:写作冗余(包名必须全部写好,包名下的很多配置都要写好)

4.yml配置文件说明yml优势

yml是yaml的缩写(YetAnother Markup Language)另一种标记语言.

可读性高,写作简单易懂,语法与JSON相似

支持更多的数据类型,可以简单地表达数组、散列表、标量和其他数据形式。空白符被用来缩进,并大量依赖于外观,适用于表达或编辑数据结构、各种配置文件等

不仅仅是Java,支持更多的编程语言

基本语法:

key: value

kv由冒号加空格组成,空格不能省略

yml读取配置⽅类型与properties相同⽤@Value注释即可

SpringBoot配置文件_spring boot_25

没有空间,port没有亮度,容器加载时也不会被识别

还有缩进的问题

SpringBoot配置文件_数据库_26

SpringBoot配置文件_spring boot_27

启动后会直接报错,因为server下找不到aaaaaa

SpringBoot配置文件_配置文件_28

aaaaa之前有两个tab,不是server下的配置信息

去掉tab后

SpringBoot配置文件_数据库_29

 

SpringBoot配置文件_spring_30

SpringBoot配置文件_配置文件_31

注:yml写作简单,但非常灵活,容易出错,不适合新手

再看一个配置字符串的例子

SpringBoot配置文件_spring boot_32

获得字符串类型后的结果如何?

SpringBoot配置文件_java_33

结果:

SpringBoot配置文件_java_34

什么都不加,加单引号,什么内容输出什么内容

加上双引号,是原意输出,\n本来说是换行

也可以表示其他数据类型的数据类型

SpringBoot配置文件_配置文件_35

配置对象

在阅读对象时,不能使用@value注释,而是使用@configuration注释来实现

yml读取对象的实现也可以配置一个对象:

SpringBoot配置文件_java_36

这种写法也可以:

student: {id: 1,name: 张三,age: 18}

 

SpringBoot配置文件_配置文件_37

SpringBoot配置文件_spring_38

启动项目:

SpringBoot配置文件_spring boot_39

配置集合

也可以在配置文件中配置集合

SpringBoot配置文件_spring boot_40

或者

collection: {name: [mysql,sqlserver,db2]}

也是使⽤@ConfigurationProperties读取

SpringBoot配置文件_spring boot_41

SpringBoot配置文件_数据库_42

启动项目

SpringBoot配置文件_数据库_43

5.设置不同环境的配置文件

Spring Boot不同平台的配置规则: 1.必须有主配置文件,主配置文件名必须是application.yml(.properties)

公共内容存储在主配置文件中,不同平台的配置文件存储有不同的内容

2.不同平台的配置文件,每个平台都有配置文件,配置文件名称:application-xxx.yml(.properties)

 

SpringBoot配置文件_配置文件_44

#开发环境配置文件server: port: 9090

 

#生产环境配置文件server: port: 9393

 

#测试环境配置文件server: port: 9898

在主配置文件中设置运行环境

spring.profiles.active=dev

dev是可变的,可以设置为其他,test/prod

然后启动项目,观察端口号,9090是开发环境的端口号

SpringBoot配置文件_数据库_46

上一篇 记录一下:Java 汉字获取拼音或首字母工具类
下一篇 Java实现坦克大战1.0

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题