🫓数据库配置
大约 4 分钟
数据库配置
自2.0.0版本开始,sms4j支持数据库配置,如果你要使用数据库配置首先你要在基础的配置文件中
设置数据源和关键字段名称,这次的支持中我们采用的是数据库存储json字符串的形式进行的,并不严格要求
表结构,只需要告诉框架他所要查询的字段即可
2.2.0版本新增功能,数据库不再强制使用jdbc的配置形式,他会优先选取容器中存在的DataSource
并通过它去获取数据库的连接
如果你的容器中已经存在了可用的DataSource,则可以不用再配置驱动,连接字符串,账号,密码,数据库名等参数
但是依旧需要指定所在表,字段等参数
配置如下:
sms:
# 告诉框架要读取的厂商配置来源,此处为枚举形式
config-type: sql_config
sql:
# JDBC驱动
driver-class-name: com.mysql.cj.jdbc.Driver
# 要链接的数据库名称 此项可不进行配置,直接在url中填写完成连接串也可 2.2.0版本已弃用
database-name: dev
# 连接字符串
url: jdbc:mysql://localhost:3306
# 数据库账号
username: root
# 数据库密码
password: 123456
# 配置所在表名
table-name: config_info
# 厂商名称存储字段
supplier-field-name: user_name
# 配置所在字段
config-name: pay_psw
# 配置启用标识字段
start-name: state
# 配置启用值 此处意思为 当字段state值为1时,则启用这个配置
is-start: 1
提示
在数据库中,可以同时存储多行,每行为一个对应的配置,然后通过启用标识字段来决定是否使用他
可以同时启用多个配置,但是统一厂商只能同时启动一个配置,否则会发生配置覆盖
厂商名称枚举
数据库配置模式下 supplier-field-name
字段所读取的值以以下枚举的中文值为标砖,我们为这个枚举添加了getName()
方法,你可以通过此方法来获取到枚举的中文部分
public enum SupplierType {
/** 阿里云*/
ALIBABA("阿里云短信"),
/** 华为云*/
HUAWEI("华为云短信"),
/** 云片*/
YUNPIAN("云片短信"),
/** 腾讯云*/
TENCENT("腾讯云短信"),
/** 合一短信*/
UNI_SMS("合一短信"),
/** 京东云 */
JD_CLOUD("京东云短信"),
/** 容联云 */
CLOOPEN("容联云短信"),
/** 亿美软通 */
EMAY("亿美软通"),
/** 天翼云 */
CTYUN("天翼云短信"),
;
}
提示
在持久化存储的数据库中,框架层面很难监听到数据库的变化,如果强行进行轮询势必会导致数据库的性能损失
因此,你在改变了数据库的配置信息后,请手动调用 SmsFactory.refreshSqlConfig() 方法进行手动刷新配置
配置文件类型枚举
目前版本中支持的配置来源类型为CONFIG_FILE
配置文件类型和SQL_CONFIG
数据库类型
public enum ConfigType {
/** 配置文件*/
CONFIG_FILE("configFile"),
/** setting配置文件*/
SETTINGS_FILE("settingsFile"),
/** 数据库配置*/
SQL_CONFIG("sqlConfig"),
/** nacos配置*/
NACOS_CONFIG("nacosConfig");
}