yml配置文件说明
yml配置文件说明
文件位置
如图所示,
application.yml—基础(本地)环境配置文件
application-beta.yml—开发环境配置文件
application-dev.yml—测试环境配置文件
application-prod.yml—正式环境配置文件
后三个环境配置文件的作用,是在不同的环境中,对应的yml中的值会对基础配置文件的值进行替换
所以我们这里只对application.yml进行说明
# CRMEB 相关配置
crmeb:
version: CRMEB-JAVA-MER-v1.0 # 当前代码版本,这里尽量不要进行修改,方便后续有问题时,针对版本号对你提供服务
domain: #配合swagger使用 # 待部署域名
asyncConfig: false #是否同步config表数据到redis
imagePath: /www/wwwroot/api.admin.net/ # 服务器图片路径配置 斜杠结尾
retailStoreBrokerageRatio: 30 #佣金返佣比例和上限
activityStyleCachedTime: 10 #活动边框缓存周期 秒为单位,生产环境适当5-10分钟即可
selectProductLimit: 100 # 商品选择 指定商品上线
productTagCacheMinutes: 10 # 商品标签缓存分钟数
orderCancelTime: 30 # 订单支付取消时间,单位分钟
ignored: #安全路径白名单,在进行响应处理时,对此路径的响应直接放行,不进行额外处理
- swagger-ui/
- swagger-resources/**
- /**/v2/api-docs
- /**/*.html
- /**/*.js
- /**/*.css
- /**/*.png
- /**/*.map
- /favicon.ico
- /actuator/**
- /druid/**
- api/admin/platform/pagediy/info
# 配置端口
server:
port: 8080 # 项目使用的端口号
servlet:
context-path: / # 访问path
tomcat:
uri-encoding: UTF-8 # 默认编码格式
max-threads: 1000 # 最大线程数量 默认200
min-spare-threads: 30 # 初始化启动线程数量
spring:
profiles:
active:
servlet:
multipart:
max-file-size: 50MB #设置单个文件大小
max-request-size: 50MB #设置单次请求文件的总大小
application:
name: crmeb-admin #这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name
jackson:
locale: zh_CN
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
# 数据库配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/java_mer_dev?characterEncoding=utf-8&useSSL=false&serverTimeZone=GMT+8
username: java_mer_dev
password: java_mer_dev
# quartz (admin项目需要进行配置)
quartz:
properties:
org:
quartz:
scheduler:
instanceName: quartzScheduler
instanceId: AUTO
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: false
clusterCheckinInterval: 10000
useProperties: false
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10
threadPriority: 5
threadsInheritContextClassLoaderOfInitializingThread: true
#数据库方式
job-store-type: JDBC
# 捕获404异常
mvc:
throw-exception-if-no-handler-found: true
resources:
add-mappings: false
# redis相关配置
redis:
host: 127.0.0.1 #地址
port: 6379 #端口
password: 000000 #密码,这里要求redis配置密码
timeout: 30000 # 连接超时时间(毫秒)
database: 9 #默认数据库
jedis:
pool:
max-active: 200 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接
time-between-eviction-runs: -1 #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
second:
database: 13 # 微信accessToken存储库
debug: true # 查看生效和失效的自动配置类
# 日志配置
logging:
level:
io.swagger.*: error
com.zbjk.crmeb: debug
org.springframework.boot.autoconfigure: ERROR
config: classpath:logback-spring.xml
file:
path: ./crmeb_log
# mybatis 配置
mybatis-plus:
mapper-locations: classpath*:mapper/*/*Mapper.xml #xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
typeAliasesPackage: com.zbkj.**.model
# 配置slq打印日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
# logic-delete-field: isDel #全局逻辑删除字段值 3.3.0开始支持,详情看下面。
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
# 行为验证码
aj:
captcha:
type: default # 验证码类型
water-mark: CRMEB Java # 水印
slip-offset: 5 # 校验滑动拼图允许误差偏移量(默认5像素)
aes-status: true # aes加密坐标开启或者禁用(true|false)
interference-options: 2 # 滑动干扰项(0/1/2)
font-style: 1 # 点选字体样式 默认Font.BOLD
font-size: 25 # 点选字体字体大小
req-frequency-limit-enable: false # 接口请求次数一分钟限制是否开启 true|false
req-get-lock-limit: 5 # 验证失败5次,get接口锁定
req-get-lock-seconds: 360 # 验证失败后,锁定时间间隔,s
req-get-minute-limit: 30 # get接口一分钟内请求数限制
req-check-minute-limit: 60 # check接口一分钟内请求数限制
req-verify-minute-limit: 60 # verify接口一分钟内请求数限制
# 滑动验证,底图路径,不配置将使用默认图片
# 支持全路径
# 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/jigsaw
jigsaw: classpath:images/jigsaw
#滑动验证,底图路径,不配置将使用默认图片
##支持全路径
# 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/pic-click
pic-click: classpath:images/pic-click
# 对于分布式部署的应用,我们建议应用自己实现CaptchaCacheService,比如用Redis或者memcache,
# 参考CaptchaCacheServiceRedisImpl.java
# 如果应用是单点的,也没有使用redis,那默认使用内存。
# 内存缓存只适合单节点部署的应用,否则验证码生产与验证在节点之间信息不同步,导致失败。
# !!! 注意啦,如果应用有使用spring-boot-starter-data-redis,
# 请打开CaptchaCacheServiceRedisImpl.java注释。
# redis -----> SPI: 在resources目录新建META-INF.services文件夹(两层),参考当前服务resources。
# 缓存local/redis...
cache-type: redis
# local缓存的阈值,达到这个值,清除缓存
cache-number: 1000
# local定时清除过期缓存(单位秒),设置为0代表不执行
timing-clear: 3600
history-data-clear-enable: false
#swagger 配置
swagger:
basic:
enable: true #是否开启
check: false #是否打开验证
username: #访问swagger的账号
password: #访问swagger的密码
# wx-java-tools 第三方框架仅仅用到了微信小程序直播功能 是用小程序直播时必须配置
wx:
miniapp:
configs:
- appid: wx7f1691a608f5b777 #微信小程序的appid
secret: f8aef2e9fc7bba28df873a1a111fd19a #微信小程序的Secret
token: CrmebJava #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
config-storage:
type: redistemplate
在这里只说明CRMEB 相关配置的使用
在crmeb-common项目下的config文件夹下有CrmebConfig文件,就是这个文件在项目启动时,加载所有yml中CRMEB 相关配置的值,并在其他需要的地方进行使用,在二开时,如果需要增加对应的私有配置,需要同样在CrmebConfig中添加对应属性和get/set方法,方便在项目中使用
@Configuration
@ConfigurationProperties(prefix = "crmeb") // 加载yml中CRMEB 相关配置的值
public class CrmebConfig{
// 当前代码版本
private String version;
// 待部署域名
private String domain;
// #请求微信接口中专服务器
private String wechatApiUrl;
// #是否同步config表数据到redis
private Boolean asyncConfig;
// 本地图片路径配置
private String imagePath;
// 佣金返佣比例和上限
private Integer retailStoreBrokerageRatio;
// 活动边框缓存周期
private Integer activityStyleCachedTime;
// 活动边框参加 指定商品参加上限
private Integer selectProductLimit;
// 商品标签缓存分钟数
private Long productTagCacheMinutes;
// 不过滤任何数据的url配置
private List<String> ignored;
// 订单支付取消时间,单位分钟
private Integer orderCancelTime;
public Integer getRetailStoreBrokerageRatio() {
return retailStoreBrokerageRatio;
}
public void setRetailStoreBrokerageRatio(Integer retailStoreBrokerageRatio) {
this.retailStoreBrokerageRatio = retailStoreBrokerageRatio;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public String getWechatApiUrl() {
return wechatApiUrl;
}
public void setWechatApiUrl(String wechatApiUrl) {
this.wechatApiUrl = wechatApiUrl;
}
public Boolean getAsyncConfig() {
return asyncConfig;
}
public void setAsyncConfig(Boolean asyncConfig) {
this.asyncConfig = asyncConfig;
}
public String getImagePath() {
return imagePath;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
public Integer getSelectProductLimit() {
return selectProductLimit;
}
public void setSelectProductLimit(Integer selectProductLimit) {
this.selectProductLimit = selectProductLimit;
}
public Integer getActivityStyleCachedTime() {
return activityStyleCachedTime;
}
public void setActivityStyleCachedTime(Integer activityStyleCachedTime) {
this.activityStyleCachedTime = activityStyleCachedTime;
}
public List<String> getIgnored() {
return ignored;
}
public void setIgnored(List<String> ignored) {
this.ignored = ignored;
}
public Long getProductTagCacheMinutes() {
return productTagCacheMinutes;
}
public void setProductTagCacheMinutes(Long productTagCacheMinutes) {
this.productTagCacheMinutes = productTagCacheMinutes;
}
public Integer getOrderCancelTime() {
return orderCancelTime;
}
public void setOrderCancelTime(Integer orderCancelTime) {
this.orderCancelTime = orderCancelTime;
}
@Override
public String toString() {
return "CrmebConfig{" +
"version='" + version + '\'' +
", domain='" + domain + '\'' +
", wechatApiUrl='" + wechatApiUrl + '\'' +
", asyncConfig=" + asyncConfig +
", imagePath='" + imagePath + '\'' +
", retailStoreBrokerageRatio=" + retailStoreBrokerageRatio +
", activityStyleCachedTime=" + activityStyleCachedTime +
", selectProductLimit=" + selectProductLimit +
", productTagCacheMinutes=" + productTagCacheMinutes +
", ignored=" + ignored +
", orderCancelTime=" + orderCancelTime +
'}';
}
}