优化Handler接口
This commit is contained in:
+1
-1
@@ -132,7 +132,7 @@ public class WeixinMessageDispatcher {
|
||||
Exception exception = null;
|
||||
WeixinResponse response = null;
|
||||
try {
|
||||
response = handlerExecutor.getMessageHandler().doHandle(request, message, messageTransfer.getNodeNames());
|
||||
response = handlerExecutor.getMessageHandler().doHandle(request, message);
|
||||
handlerExecutor.applyPostHandle(request, response, message);
|
||||
context.writeAndFlush(response);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -30,7 +30,7 @@ public class DebugMessageHandler implements WeixinMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set<String> nodeNames) {
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message) {
|
||||
String content = message == null
|
||||
? request.getOriginalContent().replaceAll("\\!\\[CDATA\\[", "").replaceAll("\\]\\]", "")
|
||||
: message.toString();
|
||||
|
||||
+40
-39
@@ -17,48 +17,49 @@ import com.foxinmy.weixin4j.util.ClassUtil;
|
||||
* @see com.foxinmy.weixin4j.request.WeixinMessage
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public abstract class MessageHandlerAdapter<M extends WeixinMessage> implements WeixinMessageHandler {
|
||||
public abstract class MessageHandlerAdapter<M extends WeixinMessage> implements
|
||||
WeixinMessageHandler {
|
||||
|
||||
@Override
|
||||
public boolean canHandle(WeixinRequest request, WeixinMessage message, Set<String> nodeNames) {
|
||||
return message != null && message.getClass() == ClassUtil.getGenericType(getClass())
|
||||
&& canHandle0(request, (M) message);
|
||||
}
|
||||
@Override
|
||||
public boolean canHandle(WeixinRequest request, WeixinMessage message,
|
||||
Set<String> nodeNames) {
|
||||
return message != null
|
||||
&& message.getClass() == ClassUtil.getGenericType(getClass())
|
||||
&& canHandle0(request, (M) message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 能否处理请求
|
||||
*
|
||||
* @param request
|
||||
* 微信请求
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @return true则执行doHandler0 @
|
||||
*/
|
||||
public boolean canHandle0(WeixinRequest request, M message) {
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 能否处理请求
|
||||
*
|
||||
* @param request
|
||||
* 微信请求
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @return true则执行doHandler0 @
|
||||
*/
|
||||
protected boolean canHandle0(WeixinRequest request, M message) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set<String> nodeNames) {
|
||||
return doHandle0(request, (M) message);
|
||||
}
|
||||
@Override
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message) {
|
||||
return doHandle0((M) message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理请求
|
||||
*
|
||||
* @param request
|
||||
* 微信请求
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @return
|
||||
*/
|
||||
public abstract WeixinResponse doHandle0(WeixinRequest request, M message);
|
||||
/**
|
||||
* 处理请求
|
||||
*
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @return
|
||||
*/
|
||||
protected abstract WeixinResponse doHandle0(M message);
|
||||
|
||||
/**
|
||||
* 缺省值为1,存在多个匹配到的MessageHandler则比较weight大小
|
||||
*/
|
||||
@Override
|
||||
public int weight() {
|
||||
return 1;
|
||||
}
|
||||
/**
|
||||
* 缺省值为1,存在多个匹配到的MessageHandler则比较weight大小
|
||||
*/
|
||||
@Override
|
||||
public int weight() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -32,20 +32,18 @@ public abstract class MultipleMessageHandlerAdapter implements WeixinMessageHand
|
||||
|
||||
@Override
|
||||
public boolean canHandle(WeixinRequest request, WeixinMessage message, Set<String> nodeNames) {
|
||||
return message != null && messageClasses.contains(message.getClass()) && canHandle0(request, message);
|
||||
return message != null && messageClasses.contains(message.getClass()) && canHandle0(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 能否处理请求
|
||||
*
|
||||
* @param request
|
||||
* 微信请求
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @return true则执行doHandler
|
||||
* @throws WeixinException
|
||||
*/
|
||||
public boolean canHandle0(WeixinRequest request, WeixinMessage message) {
|
||||
protected boolean canHandle0(WeixinMessage message) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -38,11 +38,9 @@ public interface WeixinMessageHandler {
|
||||
* 微信请求
|
||||
* @param message
|
||||
* 微信消息
|
||||
* @param nodeNames
|
||||
* 节点名称集合
|
||||
* @return 回复内容
|
||||
*/
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message, Set<String> nodeNames);
|
||||
public WeixinResponse doHandle(WeixinRequest request, WeixinMessage message);
|
||||
|
||||
/**
|
||||
* 用于匹配到多个MessageHandler时权重降序排列,数字越大优先级越高
|
||||
|
||||
Reference in New Issue
Block a user