服务端ServerChannelHandler初始化逻辑优化

This commit is contained in:
aoshiguchen
2022-10-08 23:20:44 +08:00
parent 11742bb1c2
commit e35adcca17
3 changed files with 45 additions and 15 deletions
@@ -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());
}
}
@@ -35,7 +35,7 @@ import javax.sql.DataSource;
*/
@Order(Ordered.HIGHEST_PRECEDENCE)
@Component
public class SystemConfiguration {
public class RestConfiguration {
@Autowired
private SqliteConfig sqliteConfig;
@@ -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