网站运营作用,网站首页收录没有了,衡阳seo外包,大学网站设计文章目录 SpringBoot配置文件1. 配置文件的作用2. 配置文件的格式3. properties 配置文件说明3.1 properties 基本语法3.2 读取配置文件3.3 properties 优缺点分析 4. yml配置文件说明4.1 yml 基本语法4.2 yml 配置读取 5. properties和yml的对比 SpringBoot配置文件
1. 配置文… 文章目录 SpringBoot配置文件1. 配置文件的作用2. 配置文件的格式3. properties 配置文件说明3.1 properties 基本语法3.2 读取配置文件3.3 properties 优缺点分析 4. yml配置文件说明4.1 yml 基本语法4.2 yml 配置读取 5. properties和yml的对比 SpringBoot配置文件
1. 配置文件的作用
整个项目中所有重要的数据都是在配置⽂件中配置的,比如
数据库的连接信息包含⽤户名和密码的设置项⽬的启动端⼝第三⽅系统的调⽤秘钥等信息⽤于发现和定位问题的普通⽇志和异常⽇志等。
假如如果没有配置信息那么 Spring Boot 项目就不能连接和操作数据库甚至是不能保存可以用 于排查问题的关键日志所以配置文件的作用是非常重要的.
2. 配置文件的格式
Spring Boot 配置⽂件主要分为以下两种格式
.properties.yml
如图所示: 说明:
理论上讲 properties 可以和yml⼀起存在于⼀个项⽬当中当 properties 和 yml ⼀起存在⼀个项⽬中时如果配置⽂件中出现了同样的配置比如 properties 和 yml 中都配置了“server.port”那么这个时候会以 properties 中的配置为主也就是 .properties 配置文件的优先级最高但加载完 .properties 文件之后也会加载 .yml 文件的配置信息。虽然理论上来讲 .properties 可以和 .yml 共存但实际的业务当中我们通常会采取⼀种统⼀的配置文件格式这样可以更好的维护降低故障率。 关闭文件后重写打开IDEA. 我们可以看到,注释乱码了.这是为什么呢?
没有配置编码. yml文件中可以设置UTF-8字符集.
3. properties 配置文件说明
properties 配置⽂件是最早期的配置文件格式也是创建 Spring Boot 项目默认的配置文件。
3.1 properties 基本语法
properties 是以键值的形式配置的key 和 value 之间是以连接的如
# 设置项目的端口
server.port8888
spring.datasource.usernameroot;
spring.datasource.passwordroot;PS:配置文件中使用#来添加注释信息.
修改端口号为8888,则在网页中使用8888才能够访问,原来的8080不能访问. 3.2 读取配置文件
如果在项目中想要主动的读取配置⽂件中的内容可以使用 Value 注解来实现。 Value 注解使⽤${}的格式读取如下代码所示
package com.example.demo;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;Component
public class ReadYml {Value(${server.port})private String port;PostConstructpublic void postConstruct() {System.out.println(Read YML,port: port);}
}3.3 properties 优缺点分析
优点: 1. 系统默认的配置文件; 2. properties 配置项的优先级比 yml 高; 3. 格式简单、不容易出错。 缺点:写法比较冗余。
4. yml配置文件说明
yml 是 YAML 是缩写它的全称 Yet Another Markup Language 翻译成中文就是“另⼀种标记 ⾔”。 yml 优点分析:
yml 是⼀个可读性⾼写法简单、易于理解它的语法和 JSON 语⾔类似。yml ⽀持更多的数据类型它可以简单表达清单数组、散列表标量等数据形态。它使⽤空白符号缩进和大量依赖外观的特色特别适合用来表达或编辑数据结构、各种配置⽂件等。yml ⽀持更多的编程语⾔它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、 JavaScript、Perl 中
4.1 yml 基本语法
yml 是树形结构的配置⽂件它的基础语法是key: value注意 key 和 value 之间使⽤英⽂冒号加空格的方式组成的其中的空格不可省略。
spring: java
student:name: huangage: 18举个例子: 使用yml连接数据库:
spring:datasource:url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncodingutf8username: rootpassword: rootyml 配置不同数据类型及 null
# 字符串
string.value: Hello
# 布尔值true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null~代表null
null.value: ~4.2 yml 配置读取
yml 读取配置的⽅式和 properties 相同使用Value 注解即可实现代码如下 Value(${student.name}) 如果读取值为空: 但程序正常运行. 若读取值不存在: 则运行程序出现异常: 注意事项value 值加单双引号 yml中内容:
string:str1: 你\n好str2: 你\n好str3: 你\n好程序及运行结果: 我们可以看到:
字符串默认不⽤加上单引号或者双引号。单引号会转义特殊字符特殊字符最终只是⼀个普通的字符串数据。双引号不会转义字符串⾥⾯的特殊字符特殊字符会作为本身想表示的意思。
在yml中除了上述写法,还有一种写法,即使用行内写法: student: {id: 1,name: Java,age: 18}但是此时需要使用ConfigurationProperties 来读取. 举例: yml中内容:
student: {name: huang,age: 18,id: 24}Student类:
package com.example.demo;import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;ConfigurationProperties(prefix student)
Getter
Setter
Component
ToString
public class Student {private String name;private int age;private int id;
}
ReadYml2调用类:
package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;Component
public class ReadYml2 {Autowiredprivate Student student;PostConstructpublic void postConstruct() {System.out.println(student);}
}运行结果:
5. properties和yml的对比 语法格式Properties 使用基于键值对的简单文本格式每个属性由键值对表示使用等号或冒号:进行分隔。而 YAML 使用缩进和冒号表示层级关系使用符号-表示列表。 可读性相比 Properties 格式YAML 格式更具可读性。YAML 使用缩进和层级结构使得配置文件更加清晰易懂可以以更直观的方式表达配置信息。 数据类型支持YAML 支持更多的数据类型如字符串、整数、浮点数、布尔值、日期等而 Properties 只支持字符串类型。 注释和空格在 Properties 文件中可以使用 # 符号添加注释。而在 YAML 文件中可以使用 # 添加注释并且可以在文本中灵活地使用空格和换行符。 Spring Boot 支持在 Spring Boot 中可以使用两种文件格式进行配置即 .properties 和 .yml。Spring Boot 对两种格式都提供了良好的支持可以根据自己的喜好和需求选择使用哪种格式。