space-test / application.yml.example
fdwei4
init: Spring Boot demo with MySQL + Redis
49c44b0
Raw History Blame Contribute Delete
3.89 kB
# 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 次请求