public class WxCpTpMessageRouter
extends java.lang.Object
微信消息路由器,通过代码化的配置,把来自微信的消息交给handler处理 和WxCpMessageRouter的rule相比,多了infoType和changeType维度的匹配 说明: 1. 配置路由规则时要按照从细到粗的原则,否则可能消息可能会被提前处理 2. 默认情况下消息只会被处理一次,除非使用WxCpTpMessageRouterRule.next()
3. 规则的结束必须用WxCpTpMessageRouterRule.end()
或者WxCpTpMessageRouterRule.next()
,否则不会生效 使用方法: WxCpTpMessageRouter router = new WxCpTpMessageRouter(); router .rule() .msgType("MSG_TYPE").event("EVENT").eventKey("EVENT_KEY").content("CONTENT") .interceptor(interceptor, ...).handler(handler, ...) .end() .rule() .infoType("INFO_TYPE").changeType("CHANGE_TYPE") // 另外一个匹配规则 .end() ; // 将WxXmlMessage交给消息路由器 router.route(message);
构造器和说明 |
---|
WxCpTpMessageRouter(WxCpTpService wxCpTpService)
构造方法.
|
限定符和类型 | 方法和说明 |
---|---|
(专用程序包) java.util.List<WxCpTpMessageRouterRule> |
getRules() |
WxCpXmlOutMessage |
route(WxCpTpXmlMessage wxMessage)
处理微信消息.
|
WxCpXmlOutMessage |
route(WxCpTpXmlMessage wxMessage,
java.util.Map<java.lang.String,java.lang.Object> context)
处理微信消息.
|
WxCpTpMessageRouterRule |
rule()
开始一个新的Route规则.
|
void |
setExceptionHandler(me.chanjar.weixin.common.api.WxErrorExceptionHandler exceptionHandler)
设置自定义的
WxErrorExceptionHandler
如果不调用该方法,默认使用 LogExceptionHandler
|
void |
setExecutorService(java.util.concurrent.ExecutorService executorService)
设置自定义的
ExecutorService
如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
|
void |
setMessageDuplicateChecker(me.chanjar.weixin.common.api.WxMessageDuplicateChecker messageDuplicateChecker)
设置自定义的
WxMessageDuplicateChecker
如果不调用该方法,默认使用 WxMessageInMemoryDuplicateChecker
|
void |
setSessionManager(me.chanjar.weixin.common.session.WxSessionManager sessionManager)
设置自定义的
WxSessionManager
如果不调用该方法,默认使用 StandardSessionManager
|
public WxCpTpMessageRouter(WxCpTpService wxCpTpService)
wxCpTpService
- WxCpTpServicepublic void setExecutorService(java.util.concurrent.ExecutorService executorService)
设置自定义的 ExecutorService
如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
executorService
- ExecutorServicepublic void setMessageDuplicateChecker(me.chanjar.weixin.common.api.WxMessageDuplicateChecker messageDuplicateChecker)
设置自定义的WxMessageDuplicateChecker
如果不调用该方法,默认使用WxMessageInMemoryDuplicateChecker
messageDuplicateChecker
- WxMessageDuplicateCheckerpublic void setSessionManager(me.chanjar.weixin.common.session.WxSessionManager sessionManager)
设置自定义的WxSessionManager
如果不调用该方法,默认使用StandardSessionManager
sessionManager
- WxSessionManagerpublic void setExceptionHandler(me.chanjar.weixin.common.api.WxErrorExceptionHandler exceptionHandler)
设置自定义的WxErrorExceptionHandler
如果不调用该方法,默认使用LogExceptionHandler
exceptionHandler
- WxErrorExceptionHandlerjava.util.List<WxCpTpMessageRouterRule> getRules()
public WxCpTpMessageRouterRule rule()
public WxCpXmlOutMessage route(WxCpTpXmlMessage wxMessage, java.util.Map<java.lang.String,java.lang.Object> context)
wxMessage
- WxCpTpXmlMessagecontext
- mappublic WxCpXmlOutMessage route(WxCpTpXmlMessage wxMessage)
wxMessage
- WxCpTpXmlMessage