Package com.foxinmy.weixin4j.startup
Class WeixinServerBootstrap
- java.lang.Object
-
- com.foxinmy.weixin4j.startup.WeixinServerBootstrap
-
public final class WeixinServerBootstrap extends Object
微信netty服务启动程序- Since:
- JDK 1.6
- Author:
- jinyu(foxinmy@gmail.com)
- See Also:
WeixinMessageMatcher,WeixinMessageHandler,WeixinMessageInterceptor,WeixinMessageDispatcher,BeanFactory
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_BOSSTHREADSboss线程数,默认设置为cpu的核数static intDEFAULT_SERVERPORT服务启动的默认端口static intDEFAULT_WORKERTHREADSworker线程数,默认设置为DEFAULT_BOSSTHREADS * 2static StringVERSION
-
Constructor Summary
Constructors Constructor Description WeixinServerBootstrap(WeixinMessageMatcher messageMatcher, AesToken... aesTokens)多个公众号的支持 值得注意的是: 1).企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数 2).非明文模式下需要在服务器URL后面加多一个`weixin_id=对应的appid/corpid`的参数WeixinServerBootstrap(AesToken... aesToken)多个公众号的支持 值得注意的是: 1).企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数 2).非明文模式下需要在服务器URL后面加多一个`weixin_id=对应的appid/corpid`的参数WeixinServerBootstrap(String token)明文模式WeixinServerBootstrap(String weixinId, String token, String aesKey)明文模式 & 兼容模式 & 密文模式 值得注意的是:企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddAesToken(AesToken aesToken)动态添加aesTokenWeixinServerBootstrapaddHandler(WeixinMessageHandler... messageHandler)添加一个或者多个消息处理器WeixinServerBootstrapaddInterceptor(WeixinMessageInterceptor... messageInterceptor)插入一个或多个消息拦截器WeixinServerBootstraphandlerPackagesToScan(String... messageHandlerPackages)按照包名去添加消息处理器WeixinServerBootstrapinterceptorPackagesToScan(String... messageInterceptorPackages)按照包名去添加消息拦截器WeixinServerBootstrapopenAlwaysResponse()打开总是响应开关,如未匹配到MessageHandler时回复空白消息WeixinServerBootstrapregistMessageClass(WeixinMessageKey messageKey, Class<? extends WeixinMessage> messageClass)注册消息类型WeixinServerBootstrapresolveBeanFactory(BeanFactory beanFactory)声明处理器跟拦截器类实例化的构造工厂,否则通过Class.newInstance的方式构造booleanshutdown(boolean blocking)关闭微信服务voidstartup()默认端口(30000)启动服务voidstartup(int serverPort)指定端口启动服务voidstartup(int bossThreads, int workerThreads, int serverPort)接受参数启动服务
-
-
-
Field Detail
-
DEFAULT_BOSSTHREADS
public static final int DEFAULT_BOSSTHREADS
boss线程数,默认设置为cpu的核数
-
DEFAULT_WORKERTHREADS
public static final int DEFAULT_WORKERTHREADS
worker线程数,默认设置为DEFAULT_BOSSTHREADS * 2
-
DEFAULT_SERVERPORT
public static final int DEFAULT_SERVERPORT
服务启动的默认端口- See Also:
- Constant Field Values
-
VERSION
public static final String VERSION
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WeixinServerBootstrap
public WeixinServerBootstrap(String token)
明文模式- Parameters:
token- 开发者token
-
WeixinServerBootstrap
public WeixinServerBootstrap(String weixinId, String token, String aesKey)
明文模式 & 兼容模式 & 密文模式-
值得注意的是:企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数
- Parameters:
weixinId- 公众号的应用ID(appid/corpid) 密文&\u517c\u5bb9\u6a21\u5f0f\u4e0b\u9700\u8981\u586b\u5199token- 开发者填写的token 无论哪种模式都需要填写aesKey- 消息加密的密钥 密文&\u517c\u5bb9\u6a21\u5f0f\u4e0b\u9700\u8981\u586b\u5199
-
WeixinServerBootstrap
public WeixinServerBootstrap(AesToken... aesToken)
多个公众号的支持- 值得注意的是:
-
1).企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数
-
2).非明文模式下需要在服务器URL后面加多一个`weixin_id=对应的appid/corpid`的参数
- Parameters:
aesTokens- 多个公众号
-
WeixinServerBootstrap
public WeixinServerBootstrap(WeixinMessageMatcher messageMatcher, AesToken... aesTokens)
多个公众号的支持- 值得注意的是:
-
1).企业号服务时需要在服务器URL后面加多一个`encrypt_type=aes`的参数
-
2).非明文模式下需要在服务器URL后面加多一个`weixin_id=对应的appid/corpid`的参数
- Parameters:
messageMatcher- 消息匹配器aesTokens- 公众号信息
-
-
Method Detail
-
startup
public void startup()
默认端口(30000)启动服务
-
startup
public void startup(int serverPort)
指定端口启动服务
-
startup
public void startup(int bossThreads, int workerThreads, int serverPort)接受参数启动服务- Parameters:
bossThreads- boss线程数workerThreads- worker线程数serverPort- 服务启动端口- Throws:
WeixinException
-
shutdown
public boolean shutdown(boolean blocking)
关闭微信服务- Parameters:
blocking- 阻塞关闭- Returns:
-
addHandler
public WeixinServerBootstrap addHandler(WeixinMessageHandler... messageHandler)
添加一个或者多个消息处理器- Parameters:
messageHandler- 消息处理器- Returns:
-
addInterceptor
public WeixinServerBootstrap addInterceptor(WeixinMessageInterceptor... messageInterceptor)
插入一个或多个消息拦截器- Parameters:
messageInterceptor- 消息拦截器- Returns:
-
handlerPackagesToScan
public WeixinServerBootstrap handlerPackagesToScan(String... messageHandlerPackages)
按照包名去添加消息处理器- Parameters:
messageHandlerPackages- 消息处理器所在的包名- Returns:
-
interceptorPackagesToScan
public WeixinServerBootstrap interceptorPackagesToScan(String... messageInterceptorPackages)
按照包名去添加消息拦截器- Parameters:
messageInterceptorPackages- 消息拦截器所在的包名- Returns:
-
resolveBeanFactory
public WeixinServerBootstrap resolveBeanFactory(BeanFactory beanFactory)
声明处理器跟拦截器类实例化的构造工厂,否则通过Class.newInstance的方式构造- Parameters:
beanFactory- Bean构造工厂- Returns:
-
registMessageClass
public WeixinServerBootstrap registMessageClass(WeixinMessageKey messageKey, Class<? extends WeixinMessage> messageClass)
注册消息类型- Parameters:
messageKey- 消息keymessageClass- 消息类- Returns:
-
openAlwaysResponse
public WeixinServerBootstrap openAlwaysResponse()
打开总是响应开关,如未匹配到MessageHandler时回复空白消息
-
addAesToken
public boolean addAesToken(AesToken aesToken)
动态添加aesToken- Parameters:
aesToken-- Returns:
-
-