Notify 类的实现思路

背景

项目中往往需要发送短信、邮件、微信消息等,这类功能往往都是读取 properties 中的配置信息,然后通过各种 sdk 进行发送。之前我都是为每种功能编写一个静态 Util 然后直接调用。

这样的方式简单,直接。缺点也很明显,不符合各种范式,不能开闭,没有解耦,类的职责太多等等。

最近看到一个开源项目有一个比较好的解决方案,这里记录下,方便以后使用。以下代码基于 Spring Boot 2.2.2.RELEASE 版本。

代码

Nofiy 模块具体由一下几个类构成:

  1. NotifyProperties 类,这个类的功能就是将配置文件的类容转换成 Java 类,使用 Spring 的 @ConfigurationProperties 可以非常方便的进行转换。
    2.NotifyAutoConfiguration 类,这是一个 @Configuration 类,该类使用了 NotifyProperties 的类容并将配置文件的数据注入到需要的 service 中。
    3.NotifyService 类,发送各种消息的 service
    4.XXSender 类,具体的各种模块的发送类,比如 SmsSender、MailSender 类,承担了具体的 SDK 调用。

实现代码:
https://files.cnblogs.com/files/manastudent/notify.zip

posted @ 2021-02-23 09:15  ManaStuDent  阅读(33)  评论(0编辑  收藏  举报