Skip to content

基于Java的轻量级微信公众号消息处理框架,使业务代码与微信消息处理框架代码解耦,并采用注解来简化开发!!!也算是本项目的一个小亮点吧!!

License

Notifications You must be signed in to change notification settings

151376liujie/wechat-core

Repository files navigation

wechat-core

一款轻量级的微信消息处理框架,可以让业务代码与微信微信处理框架代码解耦,并且你根本不需要关心消息是如何发送的,你只需要关注你的业务即可.

项目介绍

  1. 封装了微信消息接收与发送,可以使用注解驱动开发,方便的进行业务开发而不需要再关注消息接收和消息发送的细节。

  2. 内部封装了消息处理器抽象类,该类提供处理消息前的消息过滤、默认行为日志等功能,用户可继承该类实现自己的业务。

  3. 只需加入注解就可将处理各个类型的消息处理器分开了,更支持将不同事件类型的消息处理器分开,避免了在处理业务逻辑的代码中使用大段的if elseif elseif 来判断消息得类型的方式。每个接口职责清晰明了,实现更解耦;

注意事项

  • 很多人问我项目的代码是不是不全啊?为什么clone下来的代码都是报错的? 因为我在项目中使用了lombok插件,如果IDE(idea,eclipse)没装这个插件的话可能会报错。所以需要提前安装并配置该插件。

所用技术介绍

  1. 使用jdk 1.8,lombok插件,集成了springMVC 和maven 3.0+,使用了少量的lambda表达式,没有使用什么高大上得技术,代码中的注释也很详细,相信读者朋友能很容易看得懂。

项目架构剖析

微信消息接收与响应示意图

快速入门(不含微信公众平台申请及接口url、token等配置步骤)

  1. 在classpath根路径下创建wechat.properties属性文件,配置wechat.appId、wechat.appsecret、wechat.token、wechat.encodingAESKey(名字必须跟这个一样), 示例如下图:wechat.properties配置文件示例

  2. 编写消息处理器类,继承AbstractMessageHandler抽象类,实现doHandleMessage方法,在该类上加上@MessageProcessor的注解,并指明要处理的消息类型,属性messageType指明要处理得消息类型,eventType指明要处理得事件类型。当消息类型是普通消息时,eventType属性可不用指定(即使指定也无效) 示例代码如下:

    • 基本消息类型的处理(文本消息处理器)
    @Component
    @MessageProcessor(messageType = MessageType.TEXT_MESSAGE)    
    public class TextMessageHandlerExample extends AbstractMessageHandler {    
        private static final Logger LOGGER = LoggerFactory.getLogger(TextMessageHandlerExample.class);    
    
        public BaseResponseMessage doHandleMessage(BaseRequestMessage requestMessage) {    
                //在这里实现你自己的业务逻辑    
            TextRequestMessage textRequestMessage = (TextRequestMessage) baseRequestMessage;
            return MessageUtils.buildTextResponseMessage(baseRequestMessage, textRequestMessage.getContent());     
        }    
    }    
    • 关注事件类型的消息处理
    @Component
    @MessageProcessor(messageType = MessageType.EVENT,eventType = EventType.EVENT_SUBSCRIBE)    
    public class SubscribeEventMessageHandlerExample extends AbstractMessageHandler {    
    
        private static final Logger LOGGER = LoggerFactory.getLogger(SubscribeEventMessageHandlerExample.class);
           
        @Override
        public BaseResponseMessage doHandleMessage(BaseRequestMessage baseRequestMessage) {
            SubOrUnSubEventRequestMessage subOrUnSubEventRequestMessage = (SubOrUnSubEventRequestMessage) baseRequestMessage;
         //在这里实现你自己的业务逻辑
        }
    }
  3. just run your application !! have fun...

示例代码

各种消息类型的接收与回复的示例代码链接如下,供读者朋友们参考

效果演示

扫描下方二维码关注公众号即可体验功能

扫描下方二维码关注公众号即可体验功能

已实现的功能列表

  1. 对基本消息类型(文本、图片、音频、视频、位置、短视频、链接消息)和事件消息(关注、取消关注、上传地理位置、扫描二维码和自定义菜单事件消息)的接收和响应的封装。
  2. 对access_token的封装,请参考AccessTokenService
  3. 整个用户接口API的封装,请参考WechatUserService

联系作者

邮箱:[email protected] ,欢迎提bug和建议。

求职

在线简历:https://151376liujie.github.io/resume/

About

基于Java的轻量级微信公众号消息处理框架,使业务代码与微信消息处理框架代码解耦,并采用注解来简化开发!!!也算是本项目的一个小亮点吧!!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages