#################################
# 开发环境通用配置文件(每个项目通用配置)
# 使用方法：
# 1. 将此文件在当前文件夹下copy一份并重命名为：[ application.yml ]；
# 2. application.yml 作为本地项目启动的通用配置文件；
# 3. application.yml 建议加入到.gitignore忽略， 避免开发人员不经意的提交。
# 4. 若对通用配置进行变更，请修改application.txt文件并提交git仓库， 由开发人员自行合并到本地。
#################################

server:
  servlet:
    context-path: / #设置应用的目录.  前缀需要带/, 无需设置后缀, 示例 【 /xxx 】 or 【 / 】


# 数据库的配置项， 自定义配置放置在配置顶层
db-config:
  master: #主库配置(必填)
    # yml填写url连接串， 无需将&符号进行转义
    url: jdbc:mysql://127.0.0.1:3306/jeepayplus?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password:
    encrypt-account: false # 连接账号和密码是否已加密。 true：db的账密需配置密文，函数详见 DBProp.main()； false: db账密请填写明文
    # 连接池配置项
    initial-size: 5 #初始化时建立物理连接的个数
    min-idle: 5 #最小连接池数量
    max-active: 30 #最大连接池数量
    max-wait: 60000 #获取连接时最大等待时间，单位毫秒
    # 检测相关
    test-while-idle: true # 建议配置为true，不影响性能，并且保证安全性。申请连接的时候检测，如果空闲时间大于timeBetweenEvictionRunsMillis，执行validationQuery检测连接是否有效。
    test-on-borrow: false # 申请连接时执行validationQuery检测连接是否有效，做了这个配置会降低性能。
    test-on-return: false # 归还连接时执行validationQuery检测连接是否有效，做了这个配置会降低性能。
    time-between-eviction-runs-millis: 60000 #配置间隔多久才进行一次检测，检测需要关闭的空闲连接，单位是毫秒
    min-evictable-idle-time-millis: 300000 #连接保持空闲而不被驱逐的最小时间
    validation-query: SELECT 1 FROM DUAL
    # 是否缓存preparedStatement
    pool-prepared-statements: false # 是否缓存preparedStatement，也就是PSCache。PSCache对支持游标的数据库性能提升巨大，比如说oracle。在mysql下建议关闭。
    max-pool-prepared-statement-per-connection-size: 20 # 要启用PSCache，必须配置大于0，当大于0时，poolPreparedStatements自动触发修改为true。
    # 配置监控统计拦截的filters，去掉后监控界面sql无法统计 通过connectProperties属性来打开mergeSql功能；慢SQL记录
    filters: stat,wall
    connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

  slave: #从库配置（可选）， 若没有显式配置则使用master的配置项。 配置参数与master一致。

# spring-boot组件配置
spring:
  servlet:
    multipart:
      enabled: true #是否启用http上传处理
      max-request-size: 10MB #最大请求文件的大小
      max-file-size: 10MB #设置单个文件最大长度
  resources:
    static-locations: classpath:/static #项目静态资源路径 （可直接通过http访问）
  freemarker:
    template-loader-path: classpath:/templates  #freemarker模板目录
    template-encoding: UTF-8
    suffix: .ftl
    settings:
      classic_compatible: true # 如果变量为null,转化为空字符串,比如做比较的时候按照空字符做比较
      number_format: '#' #数字格式进行原样显示，不加格式化字符例如  100,00
  cache:
    type: redis
  redis:
    host: 127.0.0.1
    port: 6379
    timeout: 1000
    password:

# #activeMQ配置 ( 注意： activeMQ配置项需在spring的下级 )
  activemq:
    broker-url: failover:(tcp://127.0.0.1:61616?wireFormat.maxInactivityDuration=0)  #连接地址
    in-memory: false # Jeepay项目不可使用内存模式， 需要连接多个消费者。
    user: system # activeMQ默认无需账密认证。 打开认证：activemq.xml添加simpleAuthenticationPlugin标签，账密在credentials.properties文件。
    password: manager
    pool:
      enabled: true
      max-connections: 10
      idle-timeout: 30000  # 空闲的连接过期时间，默认为30秒
#
#  #rabbitmq配置  ( 注意： rabbitmq配置项需在spring的下级 )
#  rabbitmq:
#    addresses: 127.0.0.1:5672
#    username: guest
#    password: guest
#    dynamic: true
#    virtual-host: /

## rocketmq配置 ( 注意：rocketmq配置项请放置到根目录， 不是spring的二级配置！  )
#rocketmq:
#  name-server: 127.0.0.1:9876
#  producer:
#    group: JEEPAY-GROUP

## 阿里云rocketmq配置 ( 注意：aliyun-rocketmq配置项请放置到根目录， 不是spring的二级配置！需要阿里云开通rocketMQ产品，创建Group和Topic  )
#aliyun-rocketmq:
#  namesrvAddr: xxx
#  accessKey: xxx
#  secretKey: xxx
#  groupIdPrefix: GID_JEEPAY_ # (分组前缀，  具体名称详见AliyunRocketMQFactory.java )

  #日志配置参数。
  # 当存在logback-spring.xml文件时： 该配置将引进到logback配置，  springboot配置不生效。
  # 不存在logback-spring.xml 文件时， 使用springboot的配置， 同样可用。
logging:
  level:
    root: info   #主日志级别
    com.jeequan.jeepay: debug   #该项目日志级别，当需要打印sql时请开启为debug
  file:
    path: ./logs  #日志存放地址

# xxl-job 执行器配置项
# xxl-job:
# executor:
#   admin-address: http://127.0.0.1:9300/xxl-job-admin  # 调度中心部署根地址 [选填]：如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调"；为空则关闭自动注册；
#   access-token: jeepayTaskToken@2022 # 执行器通讯TOKEN
#   # appname: jeepay-plus-bill-executor # 执行器AppName [选填]：执行器心跳注册分组依据；为空则关闭自动注册
#   # port: # 执行器端口号 [选填]：小于等于0则自动获取；默认端口为9999，单机部署多个执行器时，注意要配置不同执行器端口；
#   log-path: ${logging.file.path} # 执行器运行日志文件存储磁盘路径 [选填] ：需要对该路径拥有读写权限；为空则使用默认路径；
#   logretentiondays: 7 # 执行器日志文件保存天数 [选填] ： 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能；

#系统业务参数
isys:
  #是否允许跨域请求 [生产环境建议关闭， 若api与前端项目没有在同一个域名下时，应开启此配置或在nginx统一配置允许跨域]
  allow-cors: true

  db-encrypt-secret: 1234567890123456 #DB SM4 加解密秘钥 (必须16位) [每个系统配置必须相同，否则加解密不一致导致业务异常！]
  http-message-encrypt-secret: 1234567890123456 #web传输加解密 秘钥 (必须16位) [每个系统配置必须相同，否则加解密不一致导致业务异常！]

  # 支付网关的公钥和私钥（系统级别！）， 请妥善保存，用于回调商户的商户侧的验证， 首次设置好之后不可随意变更！
  sys-RSA2-private-key:  
  sys-RSA2-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi1NJVybvb3CQsK8BRsE9Qql1EmPiTFtokkT7YC8OpcY1ONN4UtVcisQObk2aJL/NFnfm3MQzKzPQ8B3hqoY5Vr2wf5amkZYiSUXYC1VHnaw2Pt2Eje+bhwbS5sWW52lKVev2lgP2vpZDah8WAlgdY4IBQfQ4VYNkoKDBgzmBwzQOWQ5eO7CqWp1tJHxvZSDUleMYAz5gCcVJ4ZBv+3lRAQ3r/RCIXPiyDAu2Y/lGHPrP0yuHN9XxU1uHWQKdy1RHXLfal1Oapv31yF8XqNxNG1sjj91S+F5sdkvR6LLdWM481z0otUyY1+68UJIZmxP3UCfsLP1byj7lKZixDxrJvwIDAQAB

  #是否内存缓存配置信息: true表示开启如支付网关地址/商户应用配置/服务商配置等， 开启后需检查MQ的广播模式是否正常； false表示直接查询DB.
  cache-config: false

  oss:
    file-root-path: D:/jeepayFiles #存储根路径 ( 无需以‘/’结尾 )
    file-public-path: ${isys.oss.file-root-path}/public #公共读取块  ( 一般配合root-path参数进行设置，需以‘/’ 开头, 无需以‘/’结尾 )
    file-private-path: ${isys.oss.file-root-path}/private #私有化本地访问，不允许url方式公共读取 ( 一般配合root-path参数进行设置，需以‘/’ 开头, 无需以‘/’结尾  )

  mq:
    vender: activeMQ  #  切换MQ厂商， 支持：【 activeMQ  rabbitMQ  rocketMQ  aliYunRocketMQ 】， 需正确配置 【对应的yml参数】 和 【jeepay-components-mq项目下pom.xml中的依赖包】。

