基本拆分完,
只剩下ProxyConfig配置文件的获取要与spring兼容问题, 暂定使用ymlUtil
This commit is contained in:
+4
-2
@@ -5,6 +5,7 @@ import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.dromara.neutrinoproxy.client.sdk.util.ProxyUtil;
|
||||
@@ -21,7 +22,8 @@ import java.util.concurrent.ScheduledExecutorService;
|
||||
* @date: 2022/6/16
|
||||
*/
|
||||
@Slf4j
|
||||
public class IAbProxyClientService {
|
||||
@Data
|
||||
public class IAbProxyClientService {
|
||||
|
||||
public ProxyConfig proxyConfig;
|
||||
|
||||
@@ -40,7 +42,7 @@ public class IAbProxyClientService {
|
||||
*/
|
||||
public static final ScheduledExecutorService reconnectExecutor = Executors.newSingleThreadScheduledExecutor(new CustomThreadFactory("ClientReconnect"));
|
||||
|
||||
public void init_i(){
|
||||
public void init(){
|
||||
reconnectExecutor.scheduleWithFixedDelay(this::reconnect, 10, proxyConfig.getTunnel().getReconnection().getIntervalSeconds(), TimeUnit.SECONDS);
|
||||
try {
|
||||
this.start();
|
||||
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
package org.dromara.neutrinoproxy.client.sdk.core;
|
||||
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import org.noear.solon.annotation.Init;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
|
||||
/**
|
||||
* 代理客户端服务
|
||||
* @author: aoshiguchen
|
||||
* @date: 2022/6/16
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ProxyClientService extends IAbProxyClientService{
|
||||
@Inject
|
||||
private ProxyConfig proxyConfig;
|
||||
@Inject("cmdTunnelBootstrap")
|
||||
private Bootstrap cmdTunnelBootstrap;
|
||||
@Inject("udpServerBootstrap")
|
||||
private Bootstrap udpServerBootstrap;
|
||||
@Init
|
||||
public void init() {
|
||||
super.proxyConfig=proxyConfig;
|
||||
super.cmdTunnelBootstrap=cmdTunnelBootstrap;
|
||||
super.udpServerBootstrap=udpServerBootstrap;
|
||||
init_i();
|
||||
}
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
package org.dromara.neutrinoproxy.client.sdk.handler;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IProxyConfiguration;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.dromara.neutrinoproxy.client.sdk.core.IAbProxyClientService;
|
||||
import org.dromara.neutrinoproxy.core.ProxyDataTypeEnum;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessage;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessageHandler;
|
||||
import org.dromara.neutrinoproxy.core.aot.NeutrinoCoreRuntimeNativeRegistrar;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.DefaultDispatcher;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author: gc.x
|
||||
* @date: 2024/1/21
|
||||
*/
|
||||
public abstract class ProxyMessageFactory extends IProxyConfiguration {
|
||||
|
||||
public abstract void beanInject(String beanName, Object t);
|
||||
public abstract Object getBean(String beanName);
|
||||
|
||||
public void start(ProxyConfig proxyConfig){
|
||||
init(proxyConfig);
|
||||
IAbProxyClientService clientService=new IAbProxyClientService();
|
||||
clientService.setProxyConfig(proxyConfig);
|
||||
clientService.setCmdTunnelBootstrap((Bootstrap) getBean("cmdTunnelBootstrap"));
|
||||
clientService.setUdpServerBootstrap((Bootstrap) getBean("udpServerBootstrap"));
|
||||
clientService.init();
|
||||
}
|
||||
|
||||
public void init(ProxyConfig proxyConfig){
|
||||
NioEventLoopGroup tunnelWorkGroup = super.tunnelWorkGroup(proxyConfig);
|
||||
beanInject("tunnelWorkGroup",tunnelWorkGroup);
|
||||
NioEventLoopGroup tcpRealServerWorkGroup = super.tcpRealServerWorkGroup(proxyConfig);
|
||||
beanInject("tcpRealServerWorkGroup",tcpRealServerWorkGroup);
|
||||
NioEventLoopGroup udpServerGroup = super.udpServerGroup(proxyConfig);
|
||||
beanInject("udpServerGroup",udpServerGroup);
|
||||
NioEventLoopGroup udpWorkGroup = super.udpWorkGroup(proxyConfig);
|
||||
beanInject("udpWorkGroup",udpWorkGroup);
|
||||
Bootstrap cmdTunnelBootstrap = super.cmdTunnelBootstrap(proxyConfig, tunnelWorkGroup);
|
||||
beanInject("cmdTunnelBootstrap",cmdTunnelBootstrap);
|
||||
Bootstrap tcpProxyTunnelBootstrap = super.tcpProxyTunnelBootstrap(proxyConfig, tunnelWorkGroup);
|
||||
beanInject("tcpProxyTunnelBootstrap",tcpProxyTunnelBootstrap);
|
||||
Bootstrap udpProxyTunnelBootstrap = super.udpProxyTunnelBootstrap(proxyConfig, tunnelWorkGroup);
|
||||
beanInject("udpProxyTunnelBootstrap",udpProxyTunnelBootstrap);
|
||||
Bootstrap realServerBootstrap = super.realServerBootstrap(proxyConfig, tcpRealServerWorkGroup);
|
||||
beanInject("realServerBootstrap",realServerBootstrap);
|
||||
Bootstrap udpServerBootstrap = super.udpServerBootstrap(proxyConfig, udpServerGroup, udpWorkGroup);
|
||||
beanInject("udpServerBootstrap",udpServerBootstrap);
|
||||
NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar = super.neutrinoCoreRuntimeNativeRegistrar();
|
||||
beanInject("neutrinoCoreRuntimeNativeRegistrar",neutrinoCoreRuntimeNativeRegistrar);
|
||||
dispatcher(proxyConfig, tcpProxyTunnelBootstrap, realServerBootstrap);
|
||||
}
|
||||
public void dispatcher(ProxyConfig proxyConfig, Bootstrap tcpProxyTunnelBootstrap, Bootstrap realServerBootstrap) {
|
||||
List<ProxyMessageHandler> list = Lists.newArrayList(
|
||||
new ProxyMessageAuthHandler(proxyConfig),
|
||||
new ProxyMessageConnectHandler(tcpProxyTunnelBootstrap,realServerBootstrap,proxyConfig),
|
||||
new ProxyMessageDisconnectHandler(),
|
||||
new ProxyMessageErrorHandler(),
|
||||
new ProxyMessageTransferHandler(),
|
||||
new UdpProxyMessageConnectHandler(proxyConfig,tcpProxyTunnelBootstrap),
|
||||
new UdpProxyMessageTransferHandler()
|
||||
);
|
||||
Dispatcher<ChannelHandlerContext, ProxyMessage> dispatcher = new DefaultDispatcher<>("MessageDispatcher", list,
|
||||
proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ?
|
||||
null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
beanInject("dispatcher",dispatcher);
|
||||
}
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
package org.dromara.neutrinoproxy.client.sdk.solon;
|
||||
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher;
|
||||
import org.noear.solon.Solon;
|
||||
|
||||
|
||||
public class BeanHandler implements IBeanHandler {
|
||||
@Override
|
||||
public Dispatcher getDispatcher(){
|
||||
return Solon.context().getBean(Dispatcher.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProxyConfig getProxyConfig() {
|
||||
return Solon.context().getBean(ProxyConfig.class);
|
||||
}
|
||||
}
|
||||
-119
@@ -1,119 +0,0 @@
|
||||
package org.dromara.neutrinoproxy.client.sdk.solon;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IProxyConfiguration;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.dromara.neutrinoproxy.client.sdk.handler.*;
|
||||
import org.dromara.neutrinoproxy.core.ProxyDataTypeEnum;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessage;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessageHandler;
|
||||
import org.dromara.neutrinoproxy.core.aot.NeutrinoCoreRuntimeNativeRegistrar;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.DefaultDispatcher;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher;
|
||||
import org.noear.solon.Solon;
|
||||
import org.noear.solon.annotation.Bean;
|
||||
import org.noear.solon.annotation.Configuration;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import org.noear.solon.core.bean.LifecycleBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 代理配置
|
||||
* @author: aoshiguchen
|
||||
* @date: 2022/10/8
|
||||
*/
|
||||
@Configuration
|
||||
public class ProxyConfiguration extends IProxyConfiguration implements LifecycleBean {
|
||||
@Inject
|
||||
private ProxyConfig proxyConfig;
|
||||
@Inject("tcpProxyTunnelBootstrap")
|
||||
private Bootstrap tcpProxyTunnelBootstrap;
|
||||
@Inject("realServerBootstrap")
|
||||
private Bootstrap realServerBootstrap;
|
||||
|
||||
@Override
|
||||
public void start() throws Throwable {
|
||||
List<ProxyMessageHandler> list = Lists.newArrayList(
|
||||
new ProxyMessageAuthHandler(proxyConfig),
|
||||
new ProxyMessageConnectHandler(tcpProxyTunnelBootstrap,realServerBootstrap,proxyConfig),
|
||||
new ProxyMessageDisconnectHandler(),
|
||||
new ProxyMessageErrorHandler(),
|
||||
new ProxyMessageTransferHandler(),
|
||||
new UdpProxyMessageConnectHandler(proxyConfig,tcpProxyTunnelBootstrap),
|
||||
new UdpProxyMessageTransferHandler()
|
||||
);
|
||||
Dispatcher<ChannelHandlerContext, ProxyMessage> dispatcher = new DefaultDispatcher<>("MessageDispatcher", list,
|
||||
proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ?
|
||||
null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
Solon.context().wrapAndPut(Dispatcher.class, dispatcher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeanHandler getBeanHandler() {
|
||||
return new BeanHandler();
|
||||
}
|
||||
@Bean("tunnelWorkGroup")
|
||||
public NioEventLoopGroup tunnelWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
return super.tunnelWorkGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("tcpRealServerWorkGroup")
|
||||
public NioEventLoopGroup tcpRealServerWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.tcpRealServerWorkGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("udpServerGroup")
|
||||
public NioEventLoopGroup udpServerGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.udpServerGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("udpWorkGroup")
|
||||
public NioEventLoopGroup udpWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.udpWorkGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("cmdTunnelBootstrap")
|
||||
public Bootstrap cmdTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.cmdTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("tcpProxyTunnelBootstrap")
|
||||
public Bootstrap tcpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.tcpProxyTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("udpProxyTunnelBootstrap")
|
||||
public Bootstrap udpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.udpProxyTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("realServerBootstrap")
|
||||
public Bootstrap realServerBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tcpRealServerWorkGroup") NioEventLoopGroup tcpRealServerWorkGroup
|
||||
) {
|
||||
return super.realServerBootstrap(proxyConfig,tcpRealServerWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("udpServerBootstrap")
|
||||
public Bootstrap udpServerBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("udpServerGroup") NioEventLoopGroup udpServerGroup,
|
||||
@Inject("udpWorkGroup") NioEventLoopGroup udpWorkGroup) {
|
||||
return super.udpServerBootstrap(proxyConfig,udpServerGroup,udpWorkGroup);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() {
|
||||
return super.neutrinoCoreRuntimeNativeRegistrar();
|
||||
}
|
||||
}
|
||||
+14
-98
@@ -1,27 +1,11 @@
|
||||
package org.dromara.neutrinoproxy.client.config;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import org.dromara.neutrinoproxy.client.handler.BeanHandler;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.IProxyConfiguration;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.dromara.neutrinoproxy.client.sdk.handler.*;
|
||||
import org.dromara.neutrinoproxy.client.sdk.solon.BeanHandler;
|
||||
import org.dromara.neutrinoproxy.core.ProxyDataTypeEnum;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessage;
|
||||
import org.dromara.neutrinoproxy.core.ProxyMessageHandler;
|
||||
import org.dromara.neutrinoproxy.core.aot.NeutrinoCoreRuntimeNativeRegistrar;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.DefaultDispatcher;
|
||||
import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher;
|
||||
import org.dromara.neutrinoproxy.client.sdk.handler.ProxyMessageFactory;
|
||||
import org.noear.solon.Solon;
|
||||
import org.noear.solon.annotation.Bean;
|
||||
import org.noear.solon.annotation.Configuration;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import org.noear.solon.core.bean.LifecycleBean;
|
||||
|
||||
import java.util.List;
|
||||
import org.noear.solon.core.BeanWrap;
|
||||
|
||||
/**
|
||||
* 代理配置
|
||||
@@ -29,92 +13,24 @@ import java.util.List;
|
||||
* @date: 2022/10/8
|
||||
*/
|
||||
@Configuration
|
||||
public class ProxyConfiguration extends IProxyConfiguration implements LifecycleBean {
|
||||
@Inject
|
||||
private ProxyConfig proxyConfig;
|
||||
@Inject("tcpProxyTunnelBootstrap")
|
||||
private Bootstrap tcpProxyTunnelBootstrap;
|
||||
@Inject("realServerBootstrap")
|
||||
private Bootstrap realServerBootstrap;
|
||||
public class ProxyConfiguration extends ProxyMessageFactory {
|
||||
|
||||
@Override
|
||||
public void start() throws Throwable {
|
||||
List<ProxyMessageHandler> list = Lists.newArrayList(
|
||||
new ProxyMessageAuthHandler(proxyConfig),
|
||||
new ProxyMessageConnectHandler(tcpProxyTunnelBootstrap,realServerBootstrap,proxyConfig),
|
||||
new ProxyMessageDisconnectHandler(),
|
||||
new ProxyMessageErrorHandler(),
|
||||
new ProxyMessageTransferHandler(),
|
||||
new UdpProxyMessageConnectHandler(proxyConfig,tcpProxyTunnelBootstrap),
|
||||
new UdpProxyMessageTransferHandler()
|
||||
);
|
||||
Dispatcher<ChannelHandlerContext, ProxyMessage> dispatcher = new DefaultDispatcher<>("MessageDispatcher", list,
|
||||
proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ?
|
||||
null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
|
||||
Solon.context().wrapAndPut(Dispatcher.class, dispatcher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeanHandler getBeanHandler() {
|
||||
return new BeanHandler();
|
||||
}
|
||||
@Bean("tunnelWorkGroup")
|
||||
public NioEventLoopGroup tunnelWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
return super.tunnelWorkGroup(proxyConfig);
|
||||
|
||||
@Override
|
||||
public void beanInject(String beanName, Object bean) {
|
||||
//包装Bean(指定名字的)
|
||||
BeanWrap beanWrap = Solon.context().wrap(beanName, bean);
|
||||
//以名字注册
|
||||
Solon.context().putWrap(beanName, beanWrap);
|
||||
}
|
||||
|
||||
@Bean("tcpRealServerWorkGroup")
|
||||
public NioEventLoopGroup tcpRealServerWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.tcpRealServerWorkGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("udpServerGroup")
|
||||
public NioEventLoopGroup udpServerGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.udpServerGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("udpWorkGroup")
|
||||
public NioEventLoopGroup udpWorkGroup(@Inject ProxyConfig proxyConfig) {
|
||||
// 暂时先公用此配置
|
||||
return super.udpWorkGroup(proxyConfig);
|
||||
}
|
||||
|
||||
@Bean("cmdTunnelBootstrap")
|
||||
public Bootstrap cmdTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.cmdTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("tcpProxyTunnelBootstrap")
|
||||
public Bootstrap tcpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.tcpProxyTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("udpProxyTunnelBootstrap")
|
||||
public Bootstrap udpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
|
||||
return super.udpProxyTunnelBootstrap(proxyConfig,tunnelWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("realServerBootstrap")
|
||||
public Bootstrap realServerBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("tcpRealServerWorkGroup") NioEventLoopGroup tcpRealServerWorkGroup
|
||||
) {
|
||||
return super.realServerBootstrap(proxyConfig,tcpRealServerWorkGroup);
|
||||
}
|
||||
|
||||
@Bean("udpServerBootstrap")
|
||||
public Bootstrap udpServerBootstrap(@Inject ProxyConfig proxyConfig,
|
||||
@Inject("udpServerGroup") NioEventLoopGroup udpServerGroup,
|
||||
@Inject("udpWorkGroup") NioEventLoopGroup udpWorkGroup) {
|
||||
return super.udpServerBootstrap(proxyConfig,udpServerGroup,udpWorkGroup);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() {
|
||||
return super.neutrinoCoreRuntimeNativeRegistrar();
|
||||
@Override
|
||||
public Object getBean(String beanName) {
|
||||
return Solon.context().getBean(beanName);
|
||||
}
|
||||
}
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package org.dromara.neutrinoproxy.client.core;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.neutrinoproxy.client.config.ProxyConfiguration;
|
||||
import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import org.noear.solon.annotation.Init;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
|
||||
/**
|
||||
* 代理客户端服务
|
||||
* @author: aoshiguchen
|
||||
* @date: 2022/6/16
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ProxyClientService{
|
||||
@Inject
|
||||
private ProxyConfiguration proxyConfiguration;
|
||||
@Inject
|
||||
private ProxyConfig proxyConfig;
|
||||
@Init
|
||||
public void init() {
|
||||
log.info("启动中....");
|
||||
proxyConfiguration.start(proxyConfig);
|
||||
log.info("启动成功....");
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -7,9 +7,10 @@ import org.noear.solon.Solon;
|
||||
|
||||
|
||||
public class BeanHandler implements IBeanHandler {
|
||||
|
||||
@Override
|
||||
public Dispatcher getDispatcher(){
|
||||
return Solon.context().getBean(Dispatcher.class);
|
||||
return Solon.context().getBean("dispatcher");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user