spring.application.name=template-service server.port=${SERVER_PORT:8080} server.forward-headers-strategy=framework # =================================================================== # Primary DataSource (MySQL) - Business Data # =================================================================== spring.datasource.primary.hikari.connection-timeout=30000 spring.datasource.primary.hikari.maximum-pool-size=50 spring.datasource.primary.hikari.minimum-idle=10 spring.datasource.primary.hikari.idle-timeout=300000 spring.datasource.primary.hikari.max-lifetime=600000 spring.datasource.primary.hikari.keepalive-time=60000 spring.datasource.primary.hikari.connection-test-query=SELECT 1 spring.datasource.primary.hikari.validation-timeout=5000 spring.datasource.primary.hikari.leak-detection-threshold=60000 # 数据库配置 spring.datasource.primary.url=${DB_URL:jdbc:mysql://127.0.0.1:3306/template_db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai} spring.datasource.primary.username=${DB_USERNAME:root} spring.datasource.primary.password=${DB_PASSWORD:} spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver # Flyway spring.jpa.hibernate.ddl-auto=validate # =================================================================== # Secondary DataSource (PostgreSQL) - Warehouse / Logs # =================================================================== spring.datasource.secondary.url=${WAREHOUSE_DB_URL:jdbc:postgresql://127.0.0.1:5432/template_warehouse} spring.datasource.secondary.username=${WAREHOUSE_DB_USERNAME:postgres} spring.datasource.secondary.password=${WAREHOUSE_DB_PASSWORD:postgres} spring.datasource.secondary.driver-class-name=org.postgresql.Driver spring.datasource.secondary.hikari.connection-timeout=30000 spring.datasource.secondary.hikari.maximum-pool-size=20 spring.datasource.secondary.hikari.minimum-idle=5 spring.datasource.secondary.hikari.keepalive-time=60000 # OpenAPI / Swagger springdoc.swagger-ui.enabled=true springdoc.api-docs.path=/v3/api-docs springdoc.swagger-ui.path=/swagger-ui.html springdoc.swagger-ui.operationsSorter=alpha springdoc.swagger-ui.tagsSorter=alpha springdoc.swagger-ui.display-request-duration=true # Redis spring.data.redis.host=${REDIS_HOST:localhost} spring.data.redis.port=6379 spring.data.redis.password=${REDIS_PWD:} # JWT Secret Key Configuration # IMPORTANT: Replace this in production! amily.jwt.secret=${AMILY_JWT_SECRET:YyNTIzL1snXG0oISVeKFNeJWUhXSpVLSpALXtNWyNeOXIgWyZePShNVHlYPl0uPnZDJV45UnIuWyZeIChNUHlYPl0uPnZD} # Mail Configuration spring.mail.host=${MAIL_HOST:smtp.example.com} spring.mail.port=${MAIL_PORT:587} spring.mail.username=${MAIL_USERNAME:} spring.mail.password=${MAIL_PASSWORD:} spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.debug=false spring.mail.default-encoding=UTF-8 # Timezone app.time-zone=${APP_TIMEZONE:Asia/Shanghai} spring.jackson.time-zone=${app.time-zone} spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # Quartz Scheduler spring.quartz.job-store-type=jdbc spring.quartz.jdbc.initialize-schema=never spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ spring.quartz.properties.org.quartz.jobStore.isClustered=false spring.quartz.properties.org.quartz.scheduler.instanceName=TemplateScheduler spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO