server:
  port: 8090
  servlet:
    context-path: /api  # 应用访问路径前缀


# 数据源配置
spring:
  servlet:
    multipart:
      max-file-size: 2GB
      max-request-size: 5GB
      file-size-threshold: 1024MB  # 超过10MB的文件直接写入磁盘
      location: /data/temp  # 指定临时存储目录（确保有足够空间）
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  # 使用Druid连接池
    driver-class-name: com.mysql.cj.jdbc.Driver   # MySQL驱动类
    url: jdbc:mysql://wcy111.top:3306/nailart?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC  # 数据库连接地址
    username: root  # 数据库用户名
    password: 122503wcy  # 数据库密码
    druid:  # Druid连接池配置
      initial-size: 5  # 初始化连接数
      min-idle: 5  # 最小空闲连接数
      max-active: 20  # 最大活跃连接数
      max-wait: 60000  # 获取连接时的最大等待时间(毫秒)
      time-between-eviction-runs-millis: 60000  # 间隔多久进行一次检测，检测需要关闭的空闲连接(毫秒)
      min-evictable-idle-time-millis: 300000  # 一个连接在池中最小生存的时间(毫秒)
      validation-query: SELECT 1 FROM DUAL  # 验证连接是否有效的SQL语句
      test-while-idle: true  # 空闲时是否检测连接有效性
      test-on-borrow: false  # 借出连接时是否检测有效性
      test-on-return: false  # 归还连接时是否检测有效性
      pool-prepared-statements: true  # 是否缓存PreparedStatement
      max-pool-prepared-statement-per-connection-size: 20  # 每个连接缓存的PreparedStatement数量
      filters: stat,wall,log4j  # 配置监控统计拦截的filters
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000  # 连接属性配置(合并SQL、慢SQL阈值)
    # Redis配置
    redis:
      host: wcy111.top  # Redis服务器地址
      port: 6379  # Redis服务器端口
      password: 122503wcy  # Redis密码
      timeout: 10000ms  # 连接超时时间
      database: 0  # 数据库索引
      lettuce: # Lettuce连接池配置
        pool:
          max-active: 8  # 最大连接数
          max-wait: -1ms  # 最大阻塞等待时间(负数表示无限制)
          max-idle: 8  # 最大空闲连接
          min-idle: 0  # 最小空闲连接

# MyBatis-Plus配置
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml  # Mapper XML文件存放路径
  type-aliases-package: com.nailart.do  # 实体类别名包路径
  global-config:
    db-config:
      id-type: auto               # 主键生成策略(AUTO=数据库ID自增)
      field-strategy: not_null    # 字段验证策略(NOT_NULL=非NULL判断)
      table-underline: false       # 表名是否使用下划线命名
      logic-delete-field: deleted # 全局逻辑删除字段名
      logic-not-delete-value: 0   # 逻辑未删除值
      logic-delete-value: 1       # 逻辑已删除值
  configuration:
    map-underscore-to-camel-case: false  # 是否开启下划线转驼峰命名
    cache-enabled: false                # 是否开启二级缓存
    call-setters-on-nulls: true         # 查询结果是否返回null字段
    jdbc-type-for-null: 'null'          # 空值的JDBC类型映射

# 阿里云OSS配置
aliyun:
  oss:
    endpoint: oss-cn-chengdu.aliyuncs.com  # OSS服务端点
    access-key-id: LTAI5tLbzuS6P8rGQ4Rw9rN9  # 访问密钥ID
    access-key-secret: R3zbklnTmEMks4HEiKRaxlXwBJvY8T  # 访问密钥Secret
    bucket-name: yuminailart  # 存储桶名称
    file-host: yuminailart.oss-cn-chengdu.aliyuncs.com # 文件主机地址

# 日志配置
logging:
  level:
    root: info  # 根日志级别
    com.example.mapper: debug  # Mapper接口日志级别(调试用)
  file:
    name: logs/application.log    # 日志文件存储路径

minio:
  endpoint: http://xiaowangnas.com:9000
  accessKey: 3RDAaP9M8HT4RDWszNSr # 访问密钥ID
  secretKey: uM7jdTIF3Xk77rwbPq0vaQWXR16zgXHqYwSRiHez # 访问密钥Secret
  region:  # 存储桶所在区域
  # 超时配置（秒）
  connectTimeout: 30
  writeTimeout: 60
  readTimeout: 60