Skip to content

二次开发

自己如何扩展接入方式

  • 建议模块的包名尽量与主要不一致,这样可以按需开启和关闭
java
/**
 * TCP 协议模块自动配置类
 *
 * <p>当 tcp.protocol.enabled=true 时,自动扫描包并创建所有TCP相关的Bean
 *
 * <p>通过 META-INF/spring.factories 实现 Spring Boot 自动配置
 *
 * @version 2.0 @Author gitee.com/NexIoT
 * @since 2025/1/2
 */
@Configuration
@ConditionalOnProperty(name = "tcp.protocol.enabled", havingValue = "true", matchIfMissing = false)
@ComponentScan(basePackages = "cn.tcp.protocol")
@EnableConfigurationProperties(TcpProperties.class)
@Slf4j
public class TcpAutoConfiguration {

  @Autowired(required = false)
  private TcpModuleInfo moduleInfo;

  public TcpAutoConfiguration() {
    log.info("[TCP协议] TCP协议模块自动配置已启用");
  }

  @PostConstruct
  public void registerProtocol() {
    if (moduleInfo != null) {
      ProtocolModuleRuntimeRegistry.registerProtocol(moduleInfo);
      log.info("[TCP自动配置] 协议模块已注册到运行时注册表");
    }
  }

  @PreDestroy
  public void unregisterProtocol() {
    if (moduleInfo != null) {
      ProtocolModuleRuntimeRegistry.unregisterProtocol(moduleInfo.getCode());
      log.info("[TCP自动配置] 协议模块已从运行时注册表注销");
    }
  }
}