wiki-files/wg-basic/yml.md

210 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 配置文件详解
description: yml配置文件详解
published: true
date: 2021-09-01T03:27:01.207Z
tags: wg-basic
editor: markdown
dateCreated: 2021-07-29T06:22:48.973Z
---
# 配置说明
## 环境
在SpringBoot中配置文件默认为application.yml相对于不同的环境开发、测试、生产开发人员可以对配置文件添加后缀来区分具体如下
1. **-dev**,开发环境
2. **-test**,测试环境
3. **-prod**,生产环境
4. **-XXX**,用户自定义
在运行服务时,只需要选择对应的环境即可,参数为`-Dspring.profiles.active=xxx`,如:`-Dspring.profiles.active=prod`表示服务在启动时会优先读取`application-prod.yml`配置文件,如果该文件不存在,则会读取`application.yml`文件。
## 属性拼写
yaml配置文件中配置属性为小写的单词并以英文减号`-`进行连接在配置文件解析的时候SpringBoot会自动将`-`去除,并将除首单词之外的其余单词首字母进行大写,组合成**驼峰**模式。当然,配置文件也是支持驼峰模式描述属性的。
# Yaml与配置类对应关系
## 服务配置
属性类ServerProperties
对照关系如下表所示
| 配置 | 属性 | 说明 | 必填 | 默认值 |
|:-:|:-:|:-:|:-:|:-:|
| server.port | port | 服务端口 | Y | 无 |
| server.url | url | 访问地址如果前置由Nginx则填写Nginx代理后的地址 | Y | 无 |
| server.system-title | systemTitle | 系统主标题 | Y | 无 |
| server.system-sub-title | systemSubTitle | 系统副标题 | N | 无 |
| server.default-index-page | defaultIndexPage | 设置后访问index接口会重定向到配置的地址index接口为登录后跳转的地址 | N | 无 |
| server.default-home-page | defaultHomePage | 设置后访问default-home接口会重定向到配置的地址default-home接口为默认index页面的首页 | N | 无 |
示例
```yaml
server:
port: 8080
url: http://192.168.1.100:8080/xxx
system-title: XXX系统
system-sub-title: 系统
default-index-page: route/system/index
default-home-page: route/system/default
servlet:
# 该属性表示访问系统的上下文地址如url中所示xxx即为上下文地址
context-path: /xxx
```
## 基础配置
属性类ink.wgink.properties.BaseProperties
对照关系如下表所示
| 配置 | 属性 | 说明 | 必填 | 默认值 |
|:-:|:-:|:-:|:-:|:-:|
| spring.login-url | loginUrl | 登录页面的访问地址 | Y | /oauth/login |
| spring.login-failure | loginFailure | 登录失败后的处理地址 | Y | /oauth/login?error |
| spring.login-process | loginProcess | 登录时form表单提交的地址 | Y | /userlogin |
| spring.assets-matchers | assetsMatchers | 资源匹配路径 | Y | /assets/** |
示例
```yaml
spring:
login-url: /oauth/login
login-failure: /oauth/login?error
login-process: /userlogin
assets-matchers: /assets/**
```
## 访问控制配置
属性类ink.wgink.properties.AccessControlProperties
对照关系如下表所示
| 配置 | 属性 | 说明 | 必填 | 默认值
|:-:|:-:|:-:|:-:|:-:|
| access-control.role-permission | rolePermission | 是否校验增、删、改、查、权限,关闭后,所有接口除菜单之外均可以正常访问 | N | true |
| access-control.pass-paths | passPaths | 放行的接口链接支持Ant格式 | N | |
示例
```yaml
access-control:
role-permission: false
pass-paths:
- /abc/*/a
- /bac/**
- /cde/*
```
## Swagger文档
配置类ink.wgink.common.config.SwaggerConfig
| 配置 | 属性 | 说明 | 必填 | 默认值
|:-:|:-:|:-:|:-:|:-:|
| swagger.title | title | 标题 | N | 相关接口文档 |
| swagger.description | description | 文档描述 | N | 相关接口文档 |
| swagger.service-url | serviceUrl | 业务地址 | N | |
| swagger.version | version | 文档版本 | N | 1.0 |
| swagger.base-package-list | basePackageList | 加载文档的根路径,不同的根路径用`,`英文逗号分割如com.cm,ink.wgink | Y | |
```yaml
swagger:
title: 标题
description: 描述
service-url: 业务地址
version: 1.0
base-package-list: ink.wgink,com.cm
```
# 完整示例
```yml
server:
port: 8080
url: http://127.0.0.1:8080/xxx
system-title: XXX系统
system-sub-title: XXX系统
servlet:
context-path: /xxx
spring:
login-url: /oauth/login
login-failure: /oauth/login?error
login-process: /userlogin
assets-matchers: /assets/**
thymeleaf:
prefix: classpath:/templates/
suffix: .html
mode: HTML5
encoding: UTF-8
cache: false
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 1GB
max-request-size: 1GB
datasource:
druid:
url: jdbc:mysql://127.0.0.1:3306/db_xxx?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true
db-type: mysql
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
initial-size: 2
min-idle: 2
max-active: 5
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 10
filter:
commons-log:
connection-logger-name: stat,wall,log4j
stat:
log-slow-sql: true
slow-sql-millis: 2000
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
use-global-data-source-stat: true
# 数据库
mybatis:
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath*:mybatis/mapper/**/*.xml
# 文档
swagger:
base-package-list: ink.wgink,com.cm
# 访问控制
access-control:
role-permission: false
# 文件
file:
# 文件的保存路径
upload-path: /a/b/c/UploadFiles/
# 图片类型
image-types: png,jpg,jpeg,gif,blob
# 视频类型
video-types: mp4,rmvb
# 音频类型
audio-types: mp3,wmv,amr
# 文件类型
file-types: doc,docx,xls,xlsx,ppt,pptx,txt,zip,rar,apk,pdf
# 同时上传最大支持数
max-file-count: 6
# 图片输出压缩质量大于0默认0.4
image-output-quality: 0.4
# 日志
logging:
file:
# 日志文件的路径,不设置不生成日志文件
name: /a/b/c/xxx-logs.log
level:
root: error
ink.wgink: debug
com.cm: debug
```