sms4j 2.0 全新来袭

sms4j2.0.0发布:新增多厂商支持与数据库配置

今天 sms4j 迎来了第一个大版本更新,2.0.0 版本正式发布!

本次的发布不仅仅项目结构发生了调整和变化,同时还伴随着诸多新的厂商和功能,下面我们来一起简单的看一下吧!

首先是 maven 的变化

老版本中,groupId 为作者的个人网站,同时也是项目的官网,在新的版本中统一改为了 Dromara 的地址

 <dependency>
     <groupId>org.dromara.sms4j</groupId>
     <artifactId>sms4j-spring-boot-starter</artifactId>
     <version> 最新版本请查看gitee或官网 </version>
 </dependency>

其次是功能的调整

在 1.X 版本中,(前名称 sms-aggregatio)只支持单家运营商的使用,不能同时使用多家厂商,对于厂商的切换也只能依靠配置文件的改变,可以说是功能及其单一,但是在新版本中,添加了多厂商支持和并用,同时配置方式也发生了变化

 sms:
    alibaba:
      #阿里云的accessKey
      accessKeyId: 您的accessKey
      #阿里云的accessKeySecret
      accessKeySecret: 您的accessKeySecret
      #短信签名
      signature: 测试签名
      #模板ID 用于发送固定模板短信使用
      templateId: SMS_215125134
      #模板变量 上述模板的变量
      templateName: code
      #请求地址 默认为dysmsapi.aliyuncs.com 如无特殊改变可以不用设置
      requestUrl: dysmsapi.aliyuncs.com
    huawei:
      #华为短信appKey
      appKey: 5N6fvXXXX920HaWhVXXXXXX7fYa
      #华为短信appSecret
      app-secret: Wujt7EYzZTBXXXXXXEhSP6XXXX
      #短信签名
      signature: 华为短信测试
      #通道号
      sender: 8823040504797
      #模板ID 如果使用自定义模板发送方法可不设定
      template-id: acXXXXXXXXc274b2a8263479b954c1ab5
      #华为回调地址,如不需要可不设置或为空
      statusCallBack:
       #华为分配的app请求地址
      url: https://XXXXX.cn-north-4.XXXXXXXX.com:443
@RestController
@RequestMapping("/test/")
public class DemoController {

   // 测试发送固定模板短信
   @RequestMapping("/")
   public void doLogin(String username, String password) {
        //阿里云向此手机号发送短信
       SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage("18888888888","123456");
       //华为短信向此手机号发送短信
       SmsFactory.createSmsBlend(SupplierType.HUAWEI).sendMessage("16666666666","000000");
   }
}

在以上仅仅只是示例,在实际的实用中可以同时支持更多的厂商。

其他的方面

sms4j 还添加了数据库配置的支持,开发者可以通过在数据库添加配置来替代配置文件,做到动态切换厂商

sms:
  # 告诉框架要读取的厂商配置来源,此处为枚举形式
  config-type: sql_config
  sql:
    # JDBC驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 要链接的数据库名称
    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

更多的新特性和功能不在这里一 一介绍了,具体的可以查看官方文档或者 gitee 仓库

官方文档
gitee 仓库

您的支持是我们前进的动力,如果我们的项目对您产生了帮助或者您觉得还不错,请为我们点上一颗 star

### SMS4J 封装及用法 SMS4J 是基于 Java 的开源库,用于简化通过 GSM Modem 发送和接收短消息的过程。此库利用了 SMSLib 项目来处理底层通信细节[^1]。 #### 安装依赖项 为了使 SMS4J 正常工作,除了获取到 SMS4J 开发包外,还需要确保环境中安装有 slf4j 和 Java Comm API 支持。这些组件对于日志记录以及串口操作至关重要。 #### 初始化配置 创建 `SmsGateway` 实例前,先定义好连接参数: ```java import org.smslib.Gateway; import org.smslib.Service; public class SmsConfig { public static Gateway configure() throws Exception { Service.getInstance().setOutboundMessageNotification(new OutboundMessageNotification()); Gateway gateway = new Gateway("COM3", 9600, false); Service.getInstance().addGateway(gateway); Service.getInstance().startService(); return gateway; } } ``` 上述代码片段展示了如何初始化并启动服务实例,并指定 COM 端口号与波特率设置。 #### 构建发送功能 下面是一个简单的例子展示怎样构建一条新消息并通过网关发出它: ```java import java.util.List; import org.smslib.OutboundMessage; import org.smslib.Message; public void sendMessage(Gateway gw, String recipientNumber, String textContent) throws Exception{ List<Message> msgList = Message.createTextMessages(recipientNumber, textContent); for (Message m : msgList){ gw.sendMessage((OutboundMessage)m); } } ``` 这段程序接受目标号码和内容字符串作为输入参数,之后会尝试将它们转换成多部分文本信息(如果必要),最后逐条传递给已配置好的网关对象执行实际传输动作。 #### 接收反馈通知 当每条短信成功送达目的地或是遇到错误情况时,可以监听来自系统的回调事件以便及时响应: ```java class OutboundMessageNotification implements IOutboundMessageNotification { @Override public void process(AGateway gateway, OutboundMessage msg) { System.out.println("Sent message to " + msg.getRecipientAddress()); } } ``` 以上实现了对外部消息状态变化的通知机制,在每次完成一次成功的发送后打印出相应的提示语句。 #### 关闭资源释放 结束应用程序之前记得停止所有活动的服务进程并且移除不再使用的网关设备: ```java try { Service.getInstance().stopService(); } catch(Exception e){} finally { try {if (!gw.isClosed()) gw.close(); }catch(Exception e){} } ``` 这一步骤非常重要,能够防止潜在的内存泄漏问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值