1 设计目的
SpringBoot
虽然干掉了 XML
,但未做到零配置,它体现出了一种 约定优于配置 ,也称作按约定编程,是一种软件设计范式 。
一般情况下默认的配置足够满足日常开发所需,但在特殊的情况下,我们往往需要用到 自定义属性配置 、 自定义文件配置 、 多环境配置 、 外部命令引导 等一系列功能。这些只需要遵循 SpringBoot
的规则配置即可 。
2 常用配置举例
2.1 在application.properties
中修改:
#server.port = # 修改端口号 默认为8080
#server.address = # bind to a specific NIC
#server.session-timeout= # session timeout in seconds
#the context path, defaults to '/'
#server.servlet.context-path = /springboot # 修改context-path 默认为 /
#server.servlet-path= # the servlet path, defaults to '/'
#server.tomcat.access-log-pattern= # log pattern of the access log
#server.tomcat.access-log-enabled=false # is access logging enabled
#server.tomcat.protocol-header=x-forwarded-proto # ssl forward headers
#server.tomcat.remote-ip-header=x-forwarded-for
#server.tomcat.basedir=/tmp # base dir (usually not needed, defaults to tmp)
#server.tomcat.background-processor-delay=30; # in seconds
#server.tomcat.max-threads = 0 # number of threads in protocol handler
#server.tomcat.uri-encoding = UTF-8 # character encoding to use for URL decoding
2.2 推荐使用:application.yml
server: # 修改server配置:
port: 8888 # 修改端口号
servlet:
context-path: /springboot # 修改context-path ,默认为 /
上面的不用重复写,但是 冒号后面必须有空格 。
3 配置文件
-
SpringBoot 使用一个全局的配置文件
•application.properties
•application.yml
-
配置文件放在
src/main/resources
目录或者类路径/config
下 -
.yml
是 YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比json
、xml
等更适合做配置文件- http://www.yaml.org/ 参考语法规范
-
全局配置文件的可以对一些默认配置值进行修改
YAML:配置例子
server:
port: 8081
XML:配置例子
<server>
<port>8081</port>
</server>
配置文件的作用:修改 SpringBoot 自动配置的默认值;SpringBoot 在底层都给我们自动配置好。
4 YAML 语法
4.1 YAML 基本语法
- 使用缩进表示层级关系
- 缩进时不允许使用 Tab 键,只允许使用
空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
大小写敏感
4.2 YAML 支持的三种数据结构
- 对象:键值对的集合
- 数组:一组按次序排列的值
- 字面量:单个的、不可再分的值
4.3 YAML常用写法
对象(Map)
- 对象的一组键值对,使用冒号分隔。如:
username: admin
- 冒号后面跟
空格
来分开键值 {k: v}
是行内写法
- 对象的一组键值对,使用冒号分隔。如:
# 方式一
maps:
k1: v1
k2: v2
# 方式二
maps: {k1: v1,k2: v2}
数组(List、Set)
- 一组连词线(
-
)开头的行,构成一个数组,[]
为行内写法 - 数组,对象可以组合使用
- 一组连词线(
# 方式一
lists:
- yang1
- yang2
- yang3
# 方式二
lists: [yang1,yang2,yang3]
-
复合结构
:以上写法的任意组合都是可以 -
字面量
- 数字、字符串、布尔、日期
- 字符串
- 默认不使用引号
- 可以使用单引号或者双引号,单引号会转义特殊字符
- 字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格
-
文档
- 多个文档用
- - -
隔开
- 多个文档用
注意: Spring Boot 使用 snakeyaml
解析 yml 文件; https://bitbucket.org/asomov/snakeyaml/wiki/Documentation#markdown-header-yamlsyntax 参考语法