一款轻量级的微信消息处理框架,可以让业务代码与微信微信处理框架代码解耦,并且你根本不需要关心消息是如何发送的,你只需要关注你的业务即可.
封装了微信消息接收与发送,可以使用注解驱动开发,方便的进行业务开发而不需要再关注消息接收和消息发送的细节。
内部封装了消息处理器抽象类,该类提供处理消息前的消息过滤、默认行为日志等功能,用户可继承该类实现自己的业务。
只需加入注解就可将处理各个类型的消息处理器分开了,更支持将不同事件类型的消息处理器分开,避免了在处理业务逻辑的代码中使用大段的if elseif elseif 来判断消息得类型的方式。每个接口职责清晰明了,实现更解耦;
在classpath根路径下创建wechat.properties属性文件,配置wechat.appId、wechat.appsecret、wechat.token、wechat.encodingAESKey(名字必须跟这个一样), 示例如下图:
编写消息处理器类,继承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;
//在这里实现你自己的业务逻辑
}
}
just run your application !! have fun...
各种消息类型的接收与回复的示例代码链接如下,供读者朋友们参考
基本消息类型
事件消息类型
邮箱:980463316@qq.com ,欢迎提bug和建议。