服务端ServerChannelHandler初始化逻辑优化
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
package fun.asgc.neutrino.proxy.server.base.proxy;
|
||||
|
||||
import fun.asgc.neutrino.core.annotation.Bean;
|
||||
import fun.asgc.neutrino.core.annotation.Component;
|
||||
import fun.asgc.neutrino.core.annotation.Order;
|
||||
import fun.asgc.neutrino.core.base.DefaultDispatcher;
|
||||
import fun.asgc.neutrino.core.base.Dispatcher;
|
||||
import fun.asgc.neutrino.core.base.Ordered;
|
||||
import fun.asgc.neutrino.core.util.BeanManager;
|
||||
import fun.asgc.neutrino.proxy.core.ProxyDataTypeEnum;
|
||||
import fun.asgc.neutrino.proxy.core.ProxyMessage;
|
||||
import fun.asgc.neutrino.proxy.core.ProxyMessageHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
|
||||
/**
|
||||
* 代理配置
|
||||
* @author: aoshiguchen
|
||||
* @date: 2022/10/8
|
||||
*/
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
@Component
|
||||
public class ProxyConfiguration {
|
||||
|
||||
@Bean
|
||||
public Dispatcher<ChannelHandlerContext, ProxyMessage> dispatcher() {
|
||||
return new DefaultDispatcher<>("消息调度器",
|
||||
BeanManager.getBeanListBySuperClass(ProxyMessageHandler.class),
|
||||
proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ? null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -35,7 +35,7 @@ import javax.sql.DataSource;
|
||||
*/
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
@Component
|
||||
public class SystemConfiguration {
|
||||
public class RestConfiguration {
|
||||
@Autowired
|
||||
private SqliteConfig sqliteConfig;
|
||||
|
||||
+14
-14
@@ -22,11 +22,10 @@
|
||||
|
||||
package fun.asgc.neutrino.proxy.server.proxy.core;
|
||||
|
||||
import fun.asgc.neutrino.core.base.DefaultDispatcher;
|
||||
import fun.asgc.neutrino.core.base.Dispatcher;
|
||||
import fun.asgc.neutrino.core.util.BeanManager;
|
||||
import fun.asgc.neutrino.core.util.LockUtil;
|
||||
import fun.asgc.neutrino.proxy.core.*;
|
||||
import fun.asgc.neutrino.proxy.core.Constants;
|
||||
import fun.asgc.neutrino.proxy.core.ProxyMessage;
|
||||
import fun.asgc.neutrino.proxy.server.proxy.domain.CmdChannelAttachInfo;
|
||||
import fun.asgc.neutrino.proxy.server.service.ProxyMutualService;
|
||||
import fun.asgc.neutrino.proxy.server.util.ProxyUtil;
|
||||
@@ -45,17 +44,18 @@ public class ServerChannelHandler extends SimpleChannelInboundHandler<ProxyMessa
|
||||
private static volatile Dispatcher<ChannelHandlerContext, ProxyMessage> dispatcher;
|
||||
|
||||
public ServerChannelHandler() {
|
||||
try {
|
||||
LockUtil.doubleCheckProcess(() -> null == dispatcher,
|
||||
ServerChannelHandler.class,
|
||||
() -> {
|
||||
dispatcher = new DefaultDispatcher<>("消息调度器",
|
||||
BeanManager.getBeanListBySuperClass(ProxyMessageHandler.class),
|
||||
proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ? null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
dispatcher = BeanManager.getBean(Dispatcher.class);
|
||||
// try {
|
||||
// LockUtil.doubleCheckProcess(() -> null == dispatcher,
|
||||
// ServerChannelHandler.class,
|
||||
// () -> {
|
||||
// dispatcher = new DefaultDispatcher<>("消息调度器",
|
||||
// BeanManager.getBeanListBySuperClass(ProxyMessageHandler.class),
|
||||
// proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ? null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
// });
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user