修改WeixinServerBootstrap类部分方法名
This commit is contained in:
parent
51353276ac
commit
b45f0c19b2
@ -19,7 +19,7 @@ weixin4j-server
|
|||||||
|
|
||||||
public class MessageServerStartup{
|
public class MessageServerStartup{
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new WeixinServerBootstrap("开发者token").pushMessageHandler(
|
new WeixinServerBootstrap("开发者token").addHandler(
|
||||||
DebugMessageHandler.global).startup();
|
DebugMessageHandler.global).startup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -29,7 +29,7 @@ weixin4j-server
|
|||||||
|
|
||||||
public class MessageServerStartup{
|
public class MessageServerStartup{
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new WeixinServerBootstrap("appid","开发者token","加密密钥").pushMessageHandler(
|
new WeixinServerBootstrap("appid","开发者token","加密密钥").addHandler(
|
||||||
DebugMessageHandler.global).startup();
|
DebugMessageHandler.global).startup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,7 +53,7 @@ weixin4j-server
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 当消息类型为文本(text)时回复「HelloWorld」, 否则回复调试消息
|
// 当消息类型为文本(text)时回复「HelloWorld」, 否则回复调试消息
|
||||||
new WeixinServerBootstrap("appid","开发者token","加密密钥").pushMessageHandler(messageHandler,
|
new WeixinServerBootstrap("appid","开发者token","加密密钥").addHandler(messageHandler,
|
||||||
DebugMessageHandler.global).startup();
|
DebugMessageHandler.global).startup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import io.netty.handler.codec.http.DefaultFullHttpResponse;
|
|||||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
import io.netty.handler.codec.http.HttpResponseStatus;
|
||||||
import io.netty.handler.codec.http.HttpVersion;
|
import io.netty.handler.codec.http.HttpVersion;
|
||||||
|
|
||||||
|
import java.lang.reflect.Constructor;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -23,6 +25,7 @@ import com.foxinmy.weixin4j.type.EncryptType;
|
|||||||
import com.foxinmy.weixin4j.util.ClassUtil;
|
import com.foxinmy.weixin4j.util.ClassUtil;
|
||||||
import com.foxinmy.weixin4j.util.Consts;
|
import com.foxinmy.weixin4j.util.Consts;
|
||||||
import com.foxinmy.weixin4j.util.HttpUtil;
|
import com.foxinmy.weixin4j.util.HttpUtil;
|
||||||
|
import com.foxinmy.weixin4j.util.ReflectionUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信消息分发器
|
* 微信消息分发器
|
||||||
@ -139,15 +142,19 @@ public class WeixinMessageDispatcher {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Class<?> clazz : messageHandlerClass) {
|
for (Class<?> clazz : messageHandlerClass) {
|
||||||
|
if (clazz.isInterface()
|
||||||
|
|| Modifier.isAbstract(clazz.getModifiers())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
messageHandlerList.add((WeixinMessageHandler) clazz
|
Constructor<?> ctor = clazz
|
||||||
.newInstance());
|
.getDeclaredConstructor();
|
||||||
} catch (InstantiationException ex) {
|
ReflectionUtil.makeAccessible(ctor);
|
||||||
|
messageHandlerList.add((WeixinMessageHandler) ctor
|
||||||
|
.newInstance((Object[]) null));
|
||||||
|
} catch (Exception ex) {
|
||||||
throw new WeixinException(clazz.getName()
|
throw new WeixinException(clazz.getName()
|
||||||
+ " Is it an abstract class?", ex);
|
+ " instantiate fail", ex);
|
||||||
} catch (IllegalAccessException ex) {
|
|
||||||
throw new WeixinException(clazz.getName()
|
|
||||||
+ " Is the constructor accessible?", ex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,16 +187,20 @@ public class WeixinMessageDispatcher {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Class<?> clazz : messageInterceptorClass) {
|
for (Class<?> clazz : messageInterceptorClass) {
|
||||||
|
if (clazz.isInterface()
|
||||||
|
|| Modifier.isAbstract(clazz.getModifiers())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
|
Constructor<?> ctor = clazz
|
||||||
|
.getDeclaredConstructor();
|
||||||
|
ReflectionUtil.makeAccessible(ctor);
|
||||||
messageInterceptorList
|
messageInterceptorList
|
||||||
.add((WeixinMessageInterceptor) clazz
|
.add((WeixinMessageInterceptor) ctor
|
||||||
.newInstance());
|
.newInstance((Object[]) null));
|
||||||
} catch (InstantiationException ex) {
|
} catch (Exception ex) {
|
||||||
throw new WeixinException(clazz.getName()
|
throw new WeixinException(clazz.getName()
|
||||||
+ " Is it an abstract class?", ex);
|
+ " instantiate fail", ex);
|
||||||
} catch (IllegalAccessException ex) {
|
|
||||||
throw new WeixinException(clazz.getName()
|
|
||||||
+ " Is the constructor accessible?", ex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,56 +142,92 @@ public final class WeixinServerBootstrap {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap pushMessageHandler(
|
/**
|
||||||
|
* 添加一个或者多个消息处理器
|
||||||
|
*
|
||||||
|
* @param messageHandler
|
||||||
|
* 消息处理器
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WeixinServerBootstrap addHandler(
|
||||||
WeixinMessageHandler... messageHandler) {
|
WeixinMessageHandler... messageHandler) {
|
||||||
messageHandlerList.addAll(Arrays.asList(messageHandler));
|
messageHandlerList.addAll(Arrays.asList(messageHandler));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap pushFirstMessageHandler(
|
/**
|
||||||
|
* 将某个消息处理器插入到头部
|
||||||
|
*
|
||||||
|
* @param messageHandler
|
||||||
|
* 消息处理器
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WeixinServerBootstrap insertFirstHandler(
|
||||||
WeixinMessageHandler messageHandler) {
|
WeixinMessageHandler messageHandler) {
|
||||||
messageHandlerList.add(0, messageHandler);
|
messageHandlerList.add(0, messageHandler);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap pushLastMessageHandler(
|
/**
|
||||||
WeixinMessageHandler messageHandler) {
|
* 插入一个或多个消息拦截器
|
||||||
messageHandlerList.add(messageHandlerList.size(), messageHandler);
|
*
|
||||||
return this;
|
* @param messageInterceptor
|
||||||
}
|
* 消息拦截器
|
||||||
|
* @return
|
||||||
public WeixinServerBootstrap pushMessageInterceptor(
|
*/
|
||||||
|
public WeixinServerBootstrap addInterceptor(
|
||||||
WeixinMessageInterceptor... messageInterceptor) {
|
WeixinMessageInterceptor... messageInterceptor) {
|
||||||
messageInterceptorList.addAll(Arrays.asList(messageInterceptor));
|
messageInterceptorList.addAll(Arrays.asList(messageInterceptor));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap pushFirstMessageInterceptor(
|
/**
|
||||||
|
* 将某个消息拦截器插入到头部
|
||||||
|
*
|
||||||
|
* @param messageInterceptor
|
||||||
|
* 消息拦截器
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WeixinServerBootstrap insertFirstInterceptor(
|
||||||
WeixinMessageInterceptor messageInterceptor) {
|
WeixinMessageInterceptor messageInterceptor) {
|
||||||
messageInterceptorList.add(0, messageInterceptor);
|
messageInterceptorList.add(0, messageInterceptor);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap pushLastMessageInterceptor(
|
/**
|
||||||
WeixinMessageInterceptor messageInterceptor) {
|
* 按照包名去添加消息处理器
|
||||||
messageInterceptorList.add(messageInterceptorList.size(),
|
*
|
||||||
messageInterceptor);
|
* @param messageHandlerPackages
|
||||||
return this;
|
* 消息处理器所在的包名
|
||||||
}
|
* @return
|
||||||
|
*/
|
||||||
public WeixinServerBootstrap messageHandlerPackagesToScan(
|
public WeixinServerBootstrap handlerPackagesToScan(
|
||||||
String... messageHandlerPackages) {
|
String... messageHandlerPackages) {
|
||||||
messageDispatcher.setMessageHandlerPackages(messageHandlerPackages);
|
messageDispatcher.setMessageHandlerPackages(messageHandlerPackages);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeixinServerBootstrap messageInterceptorPackagesToScan(
|
/**
|
||||||
|
* 按照包名去添加消息拦截器
|
||||||
|
*
|
||||||
|
* @param messageInterceptorPackages
|
||||||
|
* 消息拦截器所在的包名
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WeixinServerBootstrap interceptorPackagesToScan(
|
||||||
String... messageInterceptorPackages) {
|
String... messageInterceptorPackages) {
|
||||||
messageDispatcher
|
messageDispatcher
|
||||||
.setMessageInterceptorPackages(messageInterceptorPackages);
|
.setMessageInterceptorPackages(messageInterceptorPackages);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 声明处理器跟拦截器类实例化的构造工厂,否则通过Class.newInstance的方式构造
|
||||||
|
*
|
||||||
|
* @param beanFactory
|
||||||
|
* Bean构造工厂
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public WeixinServerBootstrap resolveBeanFactory(BeanFactory beanFactory) {
|
public WeixinServerBootstrap resolveBeanFactory(BeanFactory beanFactory) {
|
||||||
messageDispatcher.setBeanFactory(beanFactory);
|
messageDispatcher.setBeanFactory(beanFactory);
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@ -79,12 +79,8 @@ public final class ClassUtil {
|
|||||||
packageName + "." + file.getName()));
|
packageName + "." + file.getName()));
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
Class<?> clazz = Class.forName(packageName + "."
|
classes.add(Class.forName(packageName + "."
|
||||||
+ file.getName().replace(".class", ""));
|
+ file.getName().replace(".class", "")));
|
||||||
if (clazz.isInterface()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
classes.add(clazz);
|
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
@ -119,12 +115,8 @@ public final class ClassUtil {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Class<?> clazz = Class.forName(entryName.replaceAll("/", ".")
|
classes.add(Class.forName(entryName.replaceAll("/", ".")
|
||||||
.replace(".class", ""));
|
.replace(".class", "")));
|
||||||
if (clazz.isInterface()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
classes.add(clazz);
|
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import com.foxinmy.weixin4j.startup.WeixinServerBootstrap;
|
|||||||
public class MessageServerStarup {
|
public class MessageServerStarup {
|
||||||
|
|
||||||
final String appid = "appid";
|
final String appid = "appid";
|
||||||
final String token = "token";
|
final String token = "carsonliu13450438112";
|
||||||
final String aesKey = "aeskey";
|
final String aesKey = "aeskey";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,8 +31,8 @@ public class MessageServerStarup {
|
|||||||
*/
|
*/
|
||||||
public void test1() throws WeixinException {
|
public void test1() throws WeixinException {
|
||||||
// 所有请求都回复调试的文本消息
|
// 所有请求都回复调试的文本消息
|
||||||
new WeixinServerBootstrap(token).pushMessageHandler(
|
new WeixinServerBootstrap(token).addHandler(DebugMessageHandler.global)
|
||||||
DebugMessageHandler.global).startup();
|
.startup();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,7 +42,7 @@ public class MessageServerStarup {
|
|||||||
*/
|
*/
|
||||||
public void test2() throws WeixinException {
|
public void test2() throws WeixinException {
|
||||||
// 所有请求都回复调试的文本消息
|
// 所有请求都回复调试的文本消息
|
||||||
new WeixinServerBootstrap(appid, token, aesKey).pushMessageHandler(
|
new WeixinServerBootstrap(appid, token, aesKey).addHandler(
|
||||||
DebugMessageHandler.global).startup();
|
DebugMessageHandler.global).startup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,11 +67,18 @@ public class MessageServerStarup {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 当消息类型为文本(text)时回复「HelloWorld」, 否则回复调试消息
|
// 当消息类型为文本(text)时回复「HelloWorld」, 否则回复调试消息
|
||||||
new WeixinServerBootstrap(appid, token, aesKey).pushMessageHandler(
|
new WeixinServerBootstrap(appid, token, aesKey).addHandler(
|
||||||
messageHandler, DebugMessageHandler.global).startup();
|
messageHandler, DebugMessageHandler.global).startup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void test4() throws WeixinException {
|
||||||
|
// 扫描包加载消息处理器
|
||||||
|
String packageToScan = "com.foxinmy.weixin4j.handler";
|
||||||
|
new WeixinServerBootstrap(token).handlerPackagesToScan(packageToScan)
|
||||||
|
.startup();
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws WeixinException {
|
public static void main(String[] args) throws WeixinException {
|
||||||
|
new MessageServerStarup().test4();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user