图片下载网站哪个好,教务管理系统入口,民宿行业网站建设方案,网页图片大小怎么调整文章目录 前言一、配置文件的作用二、两种配置文件格式1, properties 格式语法2, properties 格式缺点3, yml 格式语法4, yml 格式缺点5, yml 支持更多类型 三、配置文件的读取三、不同环境下的配置文件总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助… 文章目录 前言一、配置文件的作用二、两种配置文件格式1, properties 格式语法2, properties 格式缺点3, yml 格式语法4, yml 格式缺点5, yml 支持更多类型 三、配置文件的读取三、不同环境下的配置文件总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新) 提示是正在努力进步的小菜鸟一只如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说直接上干货
一、配置文件的作用
项目中很多重要的数据都是在配置文件中配置的, 比如
数据库的连接信息项目的启动端口第三方系统的调用秘钥等信息设置日志打印级别, 设置保存日志的路径, 发现和定位问题的普通日志和异常日志…
就拿第一条来说, 如果你的项目中没有配置文件, 那你怎么连接到你要使用的数据库呢? 二、两种配置文件格式
SpringBoot 中主要有两种配置文件格式 : properties 和 yml(YAML)
properties 是默认的配置文件格式, 项目创建好之后就存在 要想使用 yml 格式, 可以在 resource 目录下手动创建, 命名为xxx.yml 理论上讲 properties 可以和 yml ⼀起存在于⼀个项目当中, 但是当 properties 和 yml ⼀起存在⼀个项目中时, 如果配置文件中出现了同样的配置, 比如 properties 和 yml 中都配置了 “server.port(端口号)”, 那么会以 properties 中的配置为主, 但加载 完 properties 文件之后, 也会加载 yml 文件的配置信息 虽然理论上来讲 properties 可以和 yml 共存, 但实际的业务当中, 通常会采取其中⼀种统⼀的配置文件格式, 这样可以更好的维护降低故障率 1, properties 格式语法
properties 是以键值的形式配置的key 和 value 之间是以 “” 连接的 使用 # 添加注释 # 配置项目启动端口号, (默认就是8080, 因为SpringBoot内嵌了tomcat, 但你可以修改成任其他端口号)
server.port8080
# 配置日志的级别
logging.level.rootinfo
# 配置日志的保存路径和名称
logging.file.pathD:/log_path
logging.file.nameD:/log_path/springboot1.log
# 设置MySQL的链接信息
spring.datasource.urljdbc:mysql://127.0.0.1:3306/要使用的数据库的库名?characterEncodingutf8
spring.datasource.usernameroot
spring.datasource.password连接的数据库的密码
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
# 设置MyBatis的XML保存路径和命名
mybatis.mapper-locationsclasspath:mybatis/*Mapper.xml这些配置项都是系统配置项, 看不懂没关系, 后续文章会在使用这些配置项时再说明 更多系统配置项可点击查看官方文档 以上都是常用的系统配置项, 但程序员甚至可以自己自定义配置项, 下面会介绍系统配置项和自定义配置项的读取方式
# 自定义配置
name张三
age20
imagepathD:\\image\\2, properties 格式缺点
上述配置项中有这么一段 :
# 设置MySQL的链接信息
spring.datasource.urljdbc:mysql://127.0.0.1:3306/要使用的数据库的库名?characterEncodingutf8
spring.datasource.usernameroot
spring.datasource.password连接的数据库的密码
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver你会发现, 这几行都是 spring.datasource 开头的, 这就造成一定程度的代码冗余, 写起来比较麻烦, yml 就解决了这一缺点 3, yml 格式语法 yml 是 YAML 是缩写, 它的全称 Yet Another Markup Language 翻译成中文是“另⼀种标记语言” yml 格式的优点 : yml 是⼀个可读性高, 写法简单、易于理解(我不这么认为hhh), 它的语法和 JSON 语⾔类似yml ⽀持更多的数据类型, 它可以简单表达清单数组、散列表标量等数据形态. 它使用空白符号缩进和大量依赖外观的特色特别适合用来表达或编辑数据结构、各种配置文件等yml 支持更多的编程语言它不止是 Java 中可以使用, 在 Golang、PHP、Python、Ruby、JavaScript、Perl 中也适用 yml 是树形结构的配置文件, 它的基础语法是“key: value”, 注意 key 和 value 之间使用英文冒号加空格的方式组成的, 其中的空格不可省略 使用 yml 配置数据库连接信息 :
spring:datasource:url: jdbc:mysql://127.0.0.0:3306/要使用的数据库的库名?characterEncodingutf8username: rootpassword: 数据库的密码在 java 代码中一个 Tab 键是 4 个格符, 但在这个 yml 文件中一个 Tab 键是 2 个空格符 4, yml 格式缺点
如果配置项信息比较多, 我认为反而不易于读写(写法不如 properties 那么简单) 一旦 key 和 value 忘记了加空格, 或者带有层级的配置项忘记了换行, 换行的位置不对, 就会导致配置失败, 因此不适合新手使用 5, yml 支持更多类型
# 字符串
str1: 你好 \n 你好
str2: 你好 \n 你好
str3: 你好 \n 你好
# 布尔值
flag1: true
flag2: false
# 整数
num: 10
# 浮点数
f: 6.666
# null ~代表null
Node: ~字符串默认不需要加上单引号或者双引号 单引号时, 转义字符无效, /n 就当作字符串 “/n”, 双引号时, 转义字符会生效, /n 就仍然表示换行 yml 还可以配置一个对象 :
# 对象
person:name: 张三age: 18
# 或者使用行内写法表示
student2: {id: 2,name: 李四, age: 15}yml 还可以配置一个 list 集合
# list集合
colortypes:color:- 红色- 黄色- 蓝色
# 或者使用行内写法 colortypes: {color:[红色,黄色,蓝色]}三、配置文件的读取
properties 和 yml 都使用 Value(“${ key 值}”) 的方式可读取对应的 value 值
RestController
public class TestController {Value(${name}) // 读取用户自定义的配置private String name;Value(${server.port}) //读取系统配置项private int port;
}yml 中如果自定义了类的配置信息, 不能使用 Value , 而是使用 ConfigurationProperties(“自定义的类名”), 读取方式如下 :
RestController
ConfigurationProperties(person)//这里不需要使用$, 里面的值说yml里定义的类名
public class Person{//字段与yml里的名称相同private String name;private int age;// 下面一定要写 getter() 和 setter() ! ! ! 这里省略了
}yml 中如果自定义了 list 集合的配置信息, 也使用 ConfigurationProperties(“自定义的集合名称”) , 读取方式如下 :
Component
ConfigurationProperties(colortypes) // 引号里面的值是 yml 里自定义的集合名称
public class TestList {private ListString color;// 下面一定要写 getter() 和 setter() ! ! ! 这里省略了
}三、不同环境下的配置文件
企业里面的项目, 一般都有三个环境 : 开发环境, 测试环境, (发布之后)上线运行环境, 不同环境下的配置信息可能不同, 为了避免每次更换环境都需要重新修改配置文件的代码, SpringBoot 支持配置不同环境下的配置文件 因为有可能在正式上线之前, 在开发环境和测试环境反复横跳, 如果上线之后有严重 bug , 一般也得再走一遍流程才能再次发布上线 一般会再创建三个配置文件, 命名为 : application-xxx.properties(或.yml), 加上后缀 -xxx 表示不同环境下的命名区分, 一般使用 dev 表示生产环境, test 表示测试环境, pro 表示上线运行环境
然后在一个公共的配置文件中标识清楚当前项目使用的是哪个配置文件(运行在哪个环境下) 总结
SpringBoot 提供了 properties 和 yml 这两种配置文件格式, 前者语法格式为 keyvalue , 后者语法格式为 key冒号空格value, 这两种格式都支持自定义配置项
properties 和 yml 的一般配置项使用 Value(${key值}) 的方式读取对应的 value, yml 中的类或者集合配置项, 使用 ConfigurationProperties(“类或集合的名称”)
以上就是本篇的所有内容了, 如果本篇对你有帮助请点赞收藏支持一下小手一抖就是对作者莫大的鼓励啦~ 上山总比下山辛苦 下篇文章见