refactor: 修改rule.service方法签名

This commit is contained in:
Daniel Qian
2015-01-22 20:11:22 +08:00
parent ffe63e71eb
commit b00bf13bd7
2 changed files with 10 additions and 22 deletions

View File

@ -107,7 +107,7 @@ public class WxCpMessageRouter {
* @return * @return
*/ */
public Rule rule() { public Rule rule() {
return new Rule(this, wxCpService, sessionManager); return new Rule(this);
} }
/** /**
@ -143,12 +143,12 @@ public class WxCpMessageRouter {
futures.add( futures.add(
executorService.submit(new Runnable() { executorService.submit(new Runnable() {
public void run() { public void run() {
rule.service(wxMessage); rule.service(wxMessage, wxCpService, sessionManager);
} }
}) })
); );
} else { } else {
res = rule.service(wxMessage); res = rule.service(wxMessage, wxCpService, sessionManager);
// 在同步操作结束session访问结束 // 在同步操作结束session访问结束
log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUserName()); log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUserName());
sessionEndAccess(wxMessage); sessionEndAccess(wxMessage);
@ -214,10 +214,6 @@ public class WxCpMessageRouter {
private final WxCpMessageRouter routerBuilder; private final WxCpMessageRouter routerBuilder;
private final WxCpService wxCpService;
private final WxSessionManager sessionManager;
private boolean async = true; private boolean async = true;
private String fromUser; private String fromUser;
@ -240,10 +236,8 @@ public class WxCpMessageRouter {
private List<WxCpMessageInterceptor> interceptors = new ArrayList<WxCpMessageInterceptor>(); private List<WxCpMessageInterceptor> interceptors = new ArrayList<WxCpMessageInterceptor>();
protected Rule(WxCpMessageRouter routerBuilder, WxCpService wxCpService, WxSessionManager sessionManager) { protected Rule(WxCpMessageRouter routerBuilder) {
this.routerBuilder = routerBuilder; this.routerBuilder = routerBuilder;
this.wxCpService = wxCpService;
this.sessionManager = sessionManager;
} }
/** /**
@ -417,7 +411,7 @@ public class WxCpMessageRouter {
* @param wxMessage * @param wxMessage
* @return true 代表继续执行别的routerfalse 代表停止执行别的router * @return true 代表继续执行别的routerfalse 代表停止执行别的router
*/ */
protected WxCpXmlOutMessage service(WxCpXmlMessage wxMessage) { protected WxCpXmlOutMessage service(WxCpXmlMessage wxMessage, WxCpService wxCpService, WxSessionManager sessionManager) {
Map<String, Object> context = new HashMap<String, Object>(); Map<String, Object> context = new HashMap<String, Object>();
// 如果拦截器不通过 // 如果拦截器不通过
for (WxCpMessageInterceptor interceptor : this.interceptors) { for (WxCpMessageInterceptor interceptor : this.interceptors) {

View File

@ -106,7 +106,7 @@ public class WxMpMessageRouter {
* @return * @return
*/ */
public Rule rule() { public Rule rule() {
return new Rule(this, wxMpService, sessionManager); return new Rule(this);
} }
/** /**
@ -142,12 +142,12 @@ public class WxMpMessageRouter {
futures.add( futures.add(
executorService.submit(new Runnable() { executorService.submit(new Runnable() {
public void run() { public void run() {
rule.service(wxMessage); rule.service(wxMessage, wxMpService, sessionManager);
} }
}) })
); );
} else { } else {
res = rule.service(wxMessage); res = rule.service(wxMessage, wxMpService, sessionManager);
// 在同步操作结束session访问结束 // 在同步操作结束session访问结束
log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUserName()); log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUserName());
sessionEndAccess(wxMessage); sessionEndAccess(wxMessage);
@ -212,10 +212,6 @@ public class WxMpMessageRouter {
private final WxMpMessageRouter routerBuilder; private final WxMpMessageRouter routerBuilder;
private final WxMpService wxMpService;
private final WxSessionManager sessionManager;
private boolean async = true; private boolean async = true;
private String fromUser; private String fromUser;
@ -236,10 +232,8 @@ public class WxMpMessageRouter {
private List<WxMpMessageInterceptor> interceptors = new ArrayList<WxMpMessageInterceptor>(); private List<WxMpMessageInterceptor> interceptors = new ArrayList<WxMpMessageInterceptor>();
protected Rule(WxMpMessageRouter routerBuilder, WxMpService wxMpService, WxSessionManager sessionManager) { protected Rule(WxMpMessageRouter routerBuilder) {
this.routerBuilder = routerBuilder; this.routerBuilder = routerBuilder;
this.wxMpService = wxMpService;
this.sessionManager = sessionManager;
} }
/** /**
@ -401,7 +395,7 @@ public class WxMpMessageRouter {
* @param wxMessage * @param wxMessage
* @return true 代表继续执行别的routerfalse 代表停止执行别的router * @return true 代表继续执行别的routerfalse 代表停止执行别的router
*/ */
protected WxMpXmlOutMessage service(WxMpXmlMessage wxMessage) { protected WxMpXmlOutMessage service(WxMpXmlMessage wxMessage, WxMpService wxMpService, WxSessionManager sessionManager) {
Map<String, Object> context = new HashMap<String, Object>(); Map<String, Object> context = new HashMap<String, Object>();
// 如果拦截器不通过 // 如果拦截器不通过
for (WxMpMessageInterceptor interceptor : this.interceptors) { for (WxMpMessageInterceptor interceptor : this.interceptors) {