package com.ruoyi.message.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * 存量配置(字段名与各站点 {@code application-.yml} 的 key 完全同名)。 *

* ⚠️ 为什么必须同名、必须扁平: *

 * Spring Boot 的松散绑定是按「点分路径 + 逐段规范化后缀匹配」工作的。
 * 一个叫 {@code xhsmsPath} 的 key,只能绑定到「字段路径为 xhsmsPath」的位置;
 * 它不可能落到 {@code sms.xhsms.path} 上——即使 {@code xhsms} 是 {@code sms} 的子字段、
 * {@code path} 是 {@code xhsms} 的子字段也不行(实测已确认:嵌套绑定恒为 null)。
 * 
* 所以本类刻意保持扁平,字段名 = yml key: * * 需要分组语义时由 {@link MessageProperties} 负责转换,业务代码不直接依赖字段布局。 *

* 各站点 yml 一律不需要改动。 */ @Component @ConfigurationProperties public class RootMessageProperties { // ------------------------------------------------------------------ 新华短信网关 /** 对应 {@code xhsmsPath} */ private String xhsmsPath; /** 对应 {@code xhsmsAccount} */ private String xhsmsAccount; /** 对应 {@code xhsmsPwd} */ private String xhsmsPwd; /** 对应 {@code xhsmsjrm}(虚拟接入码) */ private String xhsmsjrm; // ------------------------------------------------------------------ 南华附一 MT /** 对应 {@code sms_accountName} */ private String smsAccountName; /** 对应 {@code sms_password} */ private String smsPassword; /** 对应 {@code sms_url} */ private String smsUrl; /** 对应 {@code sms_sourceAddr} */ private String smsSourceAddr; /** 对应 {@code sms_serviceCode} */ private String smsServiceCode; /** 对应 {@code sms_appkey} */ private String smsAppkey; /** 对应 {@code sms_flag}(短信签名前缀) */ private String smsFlag; // ------------------------------------------------------------------ 阿里云短信 /** 对应 {@code accessKeyId} */ private String accessKeyId; /** 对应 {@code accessKeySecret} */ private String accessKeySecret; /** 对应 {@code signName} */ private String signName; public String getXhsmsPath() { return xhsmsPath; } public void setXhsmsPath(String xhsmsPath) { this.xhsmsPath = xhsmsPath; } public String getXhsmsAccount() { return xhsmsAccount; } public void setXhsmsAccount(String xhsmsAccount) { this.xhsmsAccount = xhsmsAccount; } public String getXhsmsPwd() { return xhsmsPwd; } public void setXhsmsPwd(String xhsmsPwd) { this.xhsmsPwd = xhsmsPwd; } public String getXhsmsjrm() { return xhsmsjrm; } public void setXhsmsjrm(String xhsmsjrm) { this.xhsmsjrm = xhsmsjrm; } public String getSmsAccountName() { return smsAccountName; } public void setSmsAccountName(String smsAccountName) { this.smsAccountName = smsAccountName; } public String getSmsPassword() { return smsPassword; } public void setSmsPassword(String smsPassword) { this.smsPassword = smsPassword; } public String getSmsUrl() { return smsUrl; } public void setSmsUrl(String smsUrl) { this.smsUrl = smsUrl; } public String getSmsSourceAddr() { return smsSourceAddr; } public void setSmsSourceAddr(String smsSourceAddr) { this.smsSourceAddr = smsSourceAddr; } public String getSmsServiceCode() { return smsServiceCode; } public void setSmsServiceCode(String smsServiceCode) { this.smsServiceCode = smsServiceCode; } public String getSmsAppkey() { return smsAppkey; } public void setSmsAppkey(String smsAppkey) { this.smsAppkey = smsAppkey; } public String getSmsFlag() { return smsFlag; } public void setSmsFlag(String smsFlag) { this.smsFlag = smsFlag; } public String getAccessKeyId() { return accessKeyId; } public void setAccessKeyId(String accessKeyId) { this.accessKeyId = accessKeyId; } public String getAccessKeySecret() { return accessKeySecret; } public void setAccessKeySecret(String accessKeySecret) { this.accessKeySecret = accessKeySecret; } public String getSignName() { return signName; } public void setSignName(String signName) { this.signName = signName; } }