configuration-guide.md
5.0 KB
SMF Core 配置指南
概述
本文档详细说明SMF Core系统的配置文件结构、配置项说明以及环境变量配置方法,帮助管理员正确配置系统。
配置文件结构
SMF Core使用Spring Boot的标准配置文件机制,主要配置文件位于src/main/resources/目录下:
resources/
├── application.yml # 主配置文件
├── application-dev.yml # 开发环境配置
├── application-prod.yml # 生产环境配置
├── smfclient.json # 客户端配置
├── smfcore.json # 核心系统配置
└── messages_*.properties # 多语言配置文件
核心配置文件详解
1. application.yml
主配置文件,包含以下核心配置项:
server:
port: 8080 # 服务端口
servlet:
context-path: /smf-core # 上下文路径
spring:
application:
name: smf-core # 应用名称
profiles:
active: dev # 激活的环境配置
datasource:
url: jdbc:mysql://localhost:3306/smf_core?useUnicode=true&characterEncoding=UTF-8
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
data:
mongodb:
uri: mongodb://localhost:27017/smf_core
# Redis配置
redis:
host: localhost
port: 6379
database: 0
# SMF自定义配置
smf:
config-path: /opt/smf/config # 外部配置文件路径
log-level: INFO # 日志级别
2. smfcore.json
系统核心配置文件,包含业务逻辑相关配置:
{
"system": {
"language": "zh-CN", // 默认语言
"dateFormat": "yyyy-MM-dd", // 日期格式
"timeFormat": "HH:mm:ss" // 时间格式
},
"equipment": {
"maxConnection": 10, // 最大设备连接数
"connectionTimeout": 30000 // 连接超时时间(毫秒)
},
"storage": {
"autoAllocate": true, // 是否自动分配库位
"reserveRatio": 0.1 // 保留库位比例
}
}
环境变量配置
以下环境变量可用于覆盖配置文件中的设置:
-
SMF_SERVER_PORT: 覆盖server.port配置 -
SMF_DB_URL: 覆盖数据库连接URL -
SMF_DB_USERNAME: 覆盖数据库用户名 -
SMF_DB_PASSWORD: 覆盖数据库密码 -
SMF_MONGODB_URI: 覆盖MongoDB连接URI -
SMF_REDIS_HOST: 覆盖Redis主机地址 -
SMF_LOG_LEVEL: 覆盖日志级别
外部配置文件
系统支持加载外部配置文件,默认读取路径为:
-
/opt/smf/config/(Linux) -
C:\Program Files\smf\config\(Windows)
外部配置文件优先级高于内置配置文件,可用于生产环境的灵活配置。
多语言配置
系统支持多语言,语言配置文件命名格式为messages_语言代码.properties:
-
messages_zh-CN.properties: 简体中文 -
messages_zh-TC.properties: 繁体中文 -
messages_en.properties: 英语 -
messages_fr.properties: 法语 -
messages_de.properties: 德语
设备连接配置
1. AGV配置
在smfcore.json中配置AGV连接参数:
{
"agv": {
"host": "192.168.1.100",
"port": 8000,
"retryCount": 3,
"retryInterval": 5000
}
}
2. 条码扫描器配置
{
"barcode": {
"timeout": 10000,
"maxRetry": 3
}
}
系统参数配置
1. 入库规则配置
{
"inbound": {
"validateSerialNumber": true, // 验证序列号
"autoAssignLocation": true, // 自动分配库位
"checkExpirationDate": true // 检查过期日期
}
}
2. 出库规则配置
{
"outbound": {
"strategy": "FIFO", // 出库策略: FIFO, LIFO, FIFO_RI_DID
"validateMaterial": true, // 验证物料信息
"notifyExternal": true // 通知外部系统
}
}
安全配置
1. 接口安全配置
# application.yml
security:
basic:
enabled: false
ignored:
- /swagger-ui/**
- /webjars/**
- /v2/api-docs
- /swagger-resources/**
2. JWT配置
jwt:
header: Authorization
secret: smf_core_secret_key
expiration: 3600000 # 1小时
tokenHead: Bearer
日志配置
系统使用log4j2进行日志管理,配置文件为log4j2-spring.xml:
主要配置项包括:
- 日志级别
- 输出格式
- 日志文件路径
- 日志滚动策略
配置热加载
系统支持配置文件热加载功能,修改配置文件后无需重启即可生效。
热加载条件:
- 修改的是外部配置文件
- 配置文件位于监控目录下
- 通过JMX触发刷新操作
配置验证
启动时系统会自动验证配置文件的有效性:
- 数据库连接测试
- 必要参数检查
- 配置值范围验证
若配置有误,系统会在日志中输出详细错误信息。
最佳实践
- 开发环境使用application-dev.yml
- 生产环境使用application-prod.yml并配合环境变量
- 敏感信息(如数据库密码)优先使用环境变量配置
- 定期备份配置文件
- 配置变更做好记录