[fix] 修改bean 手动注入

This commit is contained in:
wujiawei 2024-01-11 10:52:47 +08:00
parent af418faf28
commit 60eb66c2aa
11 changed files with 188 additions and 47 deletions

View File

@ -6,7 +6,6 @@ import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApp
import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket; import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -23,9 +22,8 @@ import java.util.concurrent.TimeUnit;
*/ */
@Slf4j @Slf4j
@Configuration @Configuration
public class AutoConfiguration implements CommandLineRunner { public class ClientAutoConfiguration implements CommandLineRunner {
private final ServerProperties serverProperties;
private final NettyServerProperties nettyServerProperties; private final NettyServerProperties nettyServerProperties;
private final ClientNettyConfigApplication clientNettyConfigApplication; private final ClientNettyConfigApplication clientNettyConfigApplication;
@ -35,11 +33,9 @@ public class AutoConfiguration implements CommandLineRunner {
ThreadPoolExecutor NETTY_CLIENT_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS, ThreadPoolExecutor NETTY_CLIENT_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<>(1)); new ArrayBlockingQueue<>(1));
public AutoConfiguration(ServerProperties serverProperties, public ClientAutoConfiguration(NettyServerProperties nettyServerProperties,
NettyServerProperties nettyServerProperties,
ClientNettyConfigApplication clientNettyConfigApplication, ClientNettyConfigApplication clientNettyConfigApplication,
List<ChannelTypeAdvanced> channelTypeAdvancedList) { List<ChannelTypeAdvanced> channelTypeAdvancedList) {
this.serverProperties = serverProperties;
this.nettyServerProperties = nettyServerProperties; this.nettyServerProperties = nettyServerProperties;
this.clientNettyConfigApplication = clientNettyConfigApplication; this.clientNettyConfigApplication = clientNettyConfigApplication;
this.channelTypeAdvancedList = channelTypeAdvancedList; this.channelTypeAdvancedList = channelTypeAdvancedList;
@ -47,7 +43,7 @@ public class AutoConfiguration implements CommandLineRunner {
@Bean(destroyMethod = "shutdown") @Bean(destroyMethod = "shutdown")
public NettyClientSocket nettyServerSocket() { public NettyClientSocket nettyClientSocket() {
String inetHost = nettyServerProperties.getInetHost(); String inetHost = nettyServerProperties.getInetHost();
int inetPort = nettyServerProperties.getInetPort(); int inetPort = nettyServerProperties.getInetPort();
String clientId = nettyServerProperties.getClientId(); String clientId = nettyServerProperties.getClientId();

View File

@ -0,0 +1,66 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.config;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Role;
import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
import wu.framework.lazy.cloud.heartbeat.client.netty.advanced.*;
import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced;
import java.util.List;
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public class HeartbeatClientConfiguration {
/**
* 服务端 处理客户端心跳
*
* @return ClientChannelHeartbeatTypeAdvanced
*/
@Bean
public ClientChannelHeartbeatTypeAdvanced clientChannelHeartbeatTypeAdvanced() {
return new ClientChannelHeartbeatTypeAdvanced();
}
/**
* 处理 客户端代理的真实端口自动读写
* @return ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced
*/
@Bean
public ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced clientDistributeSingleClientRealAutoReadConnectTypeAdvanced(){
return new ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced();
}
@Bean
public ClientDistributeSingleClientRealCloseVisitorTypeAdvanced clientDistributeSingleClientRealCloseVisitorTypeAdvanced(){
return new ClientDistributeSingleClientRealCloseVisitorTypeAdvanced();
}
@Bean
public ClientReportChannelTransferTypeAdvanced clientReportChannelTransferTypeAdvanced(NettyServerProperties nettyServerProperties){
return new ClientReportChannelTransferTypeAdvanced(nettyServerProperties);
}
@Bean
public DistributeConnectSuccessNotificationTypeAdvanced distributeConnectSuccessNotificationTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication, NettyServerProperties nettyServerProperties){
return new DistributeConnectSuccessNotificationTypeAdvanced(clientNettyConfigApplication, nettyServerProperties);
}
@Bean
public DistributeDisconnectTypeAdvanced distributeDisconnectTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication){
return new DistributeDisconnectTypeAdvanced(clientNettyConfigApplication);
}
@Bean
public DistributeStagingClosedTypeAdvanced distributeStagingClosedTypeAdvanced(){
return new DistributeStagingClosedTypeAdvanced();
}
@Bean
public DistributeStagingOpenedTypeAdvanced distributeStagingOpenedTypeAdvanced(){
return new DistributeStagingOpenedTypeAdvanced();
}
@Bean
public ClientDistributeSingleClientRealConnectTypeAdvanced clientDistributeSingleClientRealConnectTypeAdvanced(NettyServerProperties nettyServerProperties,
List<ChannelTypeAdvanced> channelTypeAdvancedList ){
return new ClientDistributeSingleClientRealConnectTypeAdvanced(nettyServerProperties,channelTypeAdvancedList);
}
}

View File

@ -11,6 +11,9 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler; import io.netty.channel.SimpleChannelInboundHandler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/**
* 客户端访客通信通道 处理器
*/
@Slf4j @Slf4j
public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler<NettyProxyMsg> { public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler<NettyProxyMsg> {
private final ChannelTypeAdapter channelTypeAdapter; private final ChannelTypeAdapter channelTypeAdapter;

View File

@ -1,3 +1,6 @@
# Auto Configure # Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration,\
wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties,\
wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration,\
wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration

View File

@ -1 +1,4 @@
wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration
wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties
wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration
wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration

View File

@ -27,28 +27,28 @@
<build> <build>
<plugins> <plugins>
<plugin> <!-- <plugin>-->
<groupId>org.graalvm.buildtools</groupId> <!-- <groupId>org.graalvm.buildtools</groupId>-->
<artifactId>native-maven-plugin</artifactId> <!-- <artifactId>native-maven-plugin</artifactId>-->
<configuration> <!-- <configuration>-->
<!-- imageName用于设置生成的二进制文件名称 --> <!-- &lt;!&ndash; imageName用于设置生成的二进制文件名称 &ndash;&gt;-->
<imageName>${project.artifactId}</imageName> <!-- <imageName>${project.artifactId}</imageName>-->
<!-- mainClass用于指定main方法类路径 --> <!-- &lt;!&ndash; mainClass用于指定main方法类路径 &ndash;&gt;-->
<mainClass>wu.framework.lazy.cloud.heartbeat.client.LazyCloudHeartbeatClient</mainClass> <!-- <mainClass>wu.framework.lazy.cloud.heartbeat.client.LazyCloudHeartbeatClient</mainClass>-->
<buildArgs> <!-- <buildArgs>-->
--no-fallback <!-- &#45;&#45;no-fallback-->
</buildArgs> <!-- </buildArgs>-->
</configuration> <!-- </configuration>-->
<executions> <!-- <executions>-->
<execution> <!-- <execution>-->
<id>build-native</id> <!-- <id>build-native</id>-->
<goals> <!-- <goals>-->
<goal>compile-no-fork</goal> <!-- <goal>compile-no-fork</goal>-->
</goals> <!-- </goals>-->
<phase>package</phase> <!-- <phase>package</phase>-->
</execution> <!-- </execution>-->
</executions> <!-- </executions>-->
</plugin> <!-- </plugin>-->
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>

View File

@ -1,12 +0,0 @@
spring:
application:
name: middleground-under-cloud-heartbeat-client
cloud:
nacos:
discovery:
server-addr: 192.168.17.221:30569
config:
server-addr: 192.168.17.221:30569

View File

@ -0,0 +1,78 @@
package wu.framework.lazy.cloud.heartbeat.server.netty.config;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Role;
import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.NettyClientBlacklistApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.ServerNettyConfigApplication;
import wu.framework.lazy.cloud.heartbeat.server.netty.advanced.*;
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public class HeartbeatServerConfiguration {
/**
* 服务端 处理客户端心跳
*
* @return ServerChannelHeartbeatTypeAdvanced
*/
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerChannelHeartbeatTypeAdvanced serverChannelHeartbeatTypeAdvanced() {
return new ServerChannelHeartbeatTypeAdvanced();
}
/**
* 处理 服务端处理客户端数据传输
*
* @return ServerReportChannelTransferTypeAdvanced
*/
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportChannelTransferTypeAdvanced serverReportChannelTransferTypeAdvanced() {
return new ServerReportChannelTransferTypeAdvanced();
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportConnectSuccessTypeAdvanced serverReportConnectSuccessTypeAdvanced(
ServerNettyConfigApplication serverNettyConfigApplication,
NettyClientBlacklistApplication nettyClientBlacklistApplication,
InternalNetworkPenetrationMappingApplication internalNetworkPenetrationMappingApplication) {
return new ServerReportConnectSuccessTypeAdvanced(serverNettyConfigApplication, nettyClientBlacklistApplication, internalNetworkPenetrationMappingApplication);
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportDisconnectTypeAdvanced serverReportDisconnectTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) {
return new ServerReportDisconnectTypeAdvanced(serverNettyConfigApplication);
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportSingleClientCloseVisitorTypeAdvanced serverReportSingleClientCloseVisitorTypeAdvanced() {
return new ServerReportSingleClientCloseVisitorTypeAdvanced();
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportSingleClientRealConnectTypeAdvanced serverReportSingleClientRealConnectTypeAdvanced() {
return new ServerReportSingleClientRealConnectTypeAdvanced();
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportStagingClosedTypeAdvanced serverReportStagingClosedTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) {
return new ServerReportStagingClosedTypeAdvanced(serverNettyConfigApplication);
}
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@Bean
public ServerReportStagingOpenedTypeAdvanced serverReportStagingOpenedTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) {
return new ServerReportStagingOpenedTypeAdvanced(serverNettyConfigApplication);
}
}

View File

@ -22,14 +22,14 @@ import java.util.concurrent.TimeUnit;
*/ */
@Slf4j @Slf4j
@Configuration @Configuration
public class AutoConfiguration implements CommandLineRunner { public class ServerAutoConfiguration implements CommandLineRunner {
private final ServerProperties serverProperties; private final ServerProperties serverProperties;
private final NettyServerFilter nettyServerFilter; private final NettyServerFilter nettyServerFilter;
ThreadPoolExecutor NETTY_SERVER_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS, ThreadPoolExecutor NETTY_SERVER_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<>(1)); new ArrayBlockingQueue<>(1));
public AutoConfiguration(ServerProperties serverProperties, NettyServerFilter nettyServerFilter) { public ServerAutoConfiguration(ServerProperties serverProperties, NettyServerFilter nettyServerFilter) {
this.serverProperties = serverProperties; this.serverProperties = serverProperties;
this.nettyServerFilter = nettyServerFilter; this.nettyServerFilter = nettyServerFilter;
} }

View File

@ -1,3 +1,5 @@
# Auto Configure # Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration,\
wu.framework.lazy.cloud.heartbeat.server.netty.config.HeartbeatServerConfiguration,\
wu.framework.lazy.cloud.heartbeat.server.netty.config.ServerAutoConfiguration

View File

@ -1 +1,3 @@
wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration
wu.framework.lazy.cloud.heartbeat.server.netty.config.HeartbeatServerConfiguration
wu.framework.lazy.cloud.heartbeat.server.netty.config.ServerAutoConfiguration