# Spring Boot 生产配置示例(对接 SQLPub MySQL + Upstash Redis + CloudFlare DDNS) # # 使用方法: # 1. 复制到 src/main/resources/application.yml # 2. 敏感信息(密码/token)通过环境变量注入,不要硬编码 # 3. HuggingFace Space 在 Settings → Repository secrets 里配置环境变量 spring: application: name: hf-springboot-demo # ========== SQLPub MySQL ========== datasource: url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:test}?useSSL=true&serverTimezone=UTC&characterEncoding=utf8 username: ${DB_USER:root} password: ${DB_PASSWORD:password} driver-class-name: com.mysql.cj.jdbc.Driver # HikariCP 连接池配置 hikari: maximum-pool-size: 10 # SQLPub 免费限 100 连接,单容器 10 足够 minimum-idle: 2 connection-timeout: 30000 # 30 秒超时(外网 DB 延迟高) idle-timeout: 600000 # 10 分钟空闲回收 max-lifetime: 1800000 # 30 分钟最大生命周期 leak-detection-threshold: 60000 # 检测连接泄漏 # ========== JPA(可选,如果用 ORM)========== jpa: hibernate: ddl-auto: validate # 生产用 validate(不自动改表结构) # ddl-auto: update # 开发用 update(自动建表/改字段) show-sql: false # 生产关闭 SQL 日志 properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect format_sql: true use_sql_comments: false # ========== Upstash Redis ========== redis: host: ${REDIS_HOST:localhost} port: ${REDIS_PORT:6379} password: ${REDIS_PASSWORD:} timeout: 5000 # 5 秒超时 database: 0 # Lettuce 连接池配置 lettuce: pool: max-active: 8 # 最大活跃连接 max-idle: 4 # 最大空闲连接 min-idle: 1 # 最小空闲连接 max-wait: 3000 # 最大等待时间(ms) # 如果用 Jedis 替代 Lettuce: # jedis: # pool: # max-active: 8 # max-idle: 4 # min-idle: 1 # ========== Server 配置 ========== server: port: 7860 # HuggingFace Space 要求 address: 0.0.0.0 # 监听所有网卡(容器必需) compression: enabled: true # 开启 Gzip 压缩 mime-types: application/json,text/html,text/css,application/javascript tomcat: threads: max: 200 # 最大线程数 min-spare: 10 # 最小空闲线程 # ========== Logging ========== logging: level: root: INFO com.example.hfspace: DEBUG # 应用包日志级别 org.springframework.web: INFO org.hibernate.SQL: ${SQL_LOG_LEVEL:WARN} # 生产关 SQL 日志,开发改 DEBUG pattern: console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" # ========== CloudFlare DDNS 配置(可选)========== cf: zone-id: ${CF_ZONE_ID:} # CloudFlare Zone ID api-token: ${CF_API_TOKEN:} # API Token(Zone.DNS Edit 权限) record-id: ${CF_RECORD_ID:} # DNS Record ID(A 记录) hf: space-url: ${HF_SPACE_URL:} # HF Space 完整域名(如 username-spacename.hf.space) # ========== 应用自定义配置 ========== app: name: HF Spring Boot Demo version: 1.0.0 # Redis 缓存 TTL(秒) cache: default-ttl: 1800 # 30 分钟 user-session-ttl: 3600 # 1 小时 # 限流配置(基于 Redis) rate-limit: enabled: ${RATE_LIMIT_ENABLED:true} requests-per-minute: ${RATE_LIMIT_RPM:60} # 每分钟 60 次请求