From 37b57fa5770def0a102f4ecfdddd1308504a893d Mon Sep 17 00:00:00 2001 From: HuangXin Date: Tue, 14 Jan 2025 11:01:22 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E4=BF=AE=E6=AD=A3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magent/annotation/AutoExternString.java | 1 - .../annotation/OperationLogAnnotation.java | 2 +- .../impl/AutoExternStringJsonProcess.java | 3 +- .../cmhi/magent/common/UtilsFormatType.java | 2 +- .../cmhi/magent/config/CommonConfigure.java | 3 +- .../magent/config/ObjectMapperProvider.java | 3 +- .../com/cmhi/magent/misc/HelperUtils.java | 2 +- .../cmhi/magent/pojo/po/IfInterfaceInfo.java | 1 - .../com/cmhi/magent/pojo/po/NetworkInfo.java | 2 -- .../com/cmhi/magent/pojo/vo/VersionResp.java | 4 +-- .../magent/service/PlatformApiService.java | 21 ++++++++++++ .../service/impl/PlatformApiServiceImpl.java | 34 +++++++++++++++++++ .../validation/valids/ValidHttpMethod.java | 2 +- .../validation/valids/ValidPageSize.java | 2 +- 14 files changed, 67 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/cmhi/magent/annotation/AutoExternString.java b/src/main/java/com/cmhi/magent/annotation/AutoExternString.java index fc56420..a32053f 100644 --- a/src/main/java/com/cmhi/magent/annotation/AutoExternString.java +++ b/src/main/java/com/cmhi/magent/annotation/AutoExternString.java @@ -3,7 +3,6 @@ package com.cmhi.magent.annotation; import com.cmhi.magent.annotation.impl.AutoExternStringJsonProcess; import com.cmhi.magent.common.NoneEnum; import com.cmhi.magent.common.UtilsFormatType; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/com/cmhi/magent/annotation/OperationLogAnnotation.java b/src/main/java/com/cmhi/magent/annotation/OperationLogAnnotation.java index 8121a24..6a706b0 100644 --- a/src/main/java/com/cmhi/magent/annotation/OperationLogAnnotation.java +++ b/src/main/java/com/cmhi/magent/annotation/OperationLogAnnotation.java @@ -29,7 +29,7 @@ import java.lang.annotation.Target; * *

* - * @author + * @author huangxin@cmhi.chinamobile.com * @version 1.0.0 * @since 2025-01-07 */ diff --git a/src/main/java/com/cmhi/magent/annotation/impl/AutoExternStringJsonProcess.java b/src/main/java/com/cmhi/magent/annotation/impl/AutoExternStringJsonProcess.java index c5b7e61..d38a199 100644 --- a/src/main/java/com/cmhi/magent/annotation/impl/AutoExternStringJsonProcess.java +++ b/src/main/java/com/cmhi/magent/annotation/impl/AutoExternStringJsonProcess.java @@ -180,10 +180,9 @@ public class AutoExternStringJsonProcess extends JsonSerializer implemen * @param serializerProvider 序列化器提供者 * @param property 目标字段 * @return 配置化的序列化器实例 - * @throws JsonMappingException 如果发生映射错误 */ @Override - public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty property) throws JsonMappingException { + public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty property) { if (property != null) { // 检查字段是否存在 @AutoExternString 注解 AutoExternString annotation = property.getAnnotation(AutoExternString.class); diff --git a/src/main/java/com/cmhi/magent/common/UtilsFormatType.java b/src/main/java/com/cmhi/magent/common/UtilsFormatType.java index 50d3550..065f2b5 100644 --- a/src/main/java/com/cmhi/magent/common/UtilsFormatType.java +++ b/src/main/java/com/cmhi/magent/common/UtilsFormatType.java @@ -17,7 +17,7 @@ import com.cmhi.magent.misc.MessageUtil; *

枚举值说明

* diff --git a/src/main/java/com/cmhi/magent/config/CommonConfigure.java b/src/main/java/com/cmhi/magent/config/CommonConfigure.java index 3047220..17cafc6 100644 --- a/src/main/java/com/cmhi/magent/config/CommonConfigure.java +++ b/src/main/java/com/cmhi/magent/config/CommonConfigure.java @@ -126,9 +126,10 @@ public class CommonConfigure { * @return 默认的语言区域 {@link Locale} */ public Locale getDefaultLocale() { + final int localSegment = 2; // 按下划线分割 String[] parts = locale.split("_"); - if (2 == parts.length) { + if (localSegment == parts.length) { return new Locale(parts[0], parts[1]); } // 如果格式不正确,则返回系统默认 Locale.CHINA diff --git a/src/main/java/com/cmhi/magent/config/ObjectMapperProvider.java b/src/main/java/com/cmhi/magent/config/ObjectMapperProvider.java index 0d3c0fc..8855174 100644 --- a/src/main/java/com/cmhi/magent/config/ObjectMapperProvider.java +++ b/src/main/java/com/cmhi/magent/config/ObjectMapperProvider.java @@ -2,6 +2,7 @@ package com.cmhi.magent.config; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Setter; +import org.jetbrains.annotations.NotNull; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @@ -39,7 +40,7 @@ public class ObjectMapperProvider implements ApplicationContextAware { * @param applicationContext Spring 应用上下文对象。 */ @Override - public void setApplicationContext(ApplicationContext applicationContext) { + public void setApplicationContext(@NotNull ApplicationContext applicationContext) { setContext(applicationContext); } diff --git a/src/main/java/com/cmhi/magent/misc/HelperUtils.java b/src/main/java/com/cmhi/magent/misc/HelperUtils.java index 301cc1e..9c784af 100644 --- a/src/main/java/com/cmhi/magent/misc/HelperUtils.java +++ b/src/main/java/com/cmhi/magent/misc/HelperUtils.java @@ -206,7 +206,7 @@ public class HelperUtils { if (request == null) { return "{}"; } - Map headers = new HashMap<>(); + Map headers = new HashMap<>(32); Enumeration headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String name = headerNames.nextElement(); diff --git a/src/main/java/com/cmhi/magent/pojo/po/IfInterfaceInfo.java b/src/main/java/com/cmhi/magent/pojo/po/IfInterfaceInfo.java index fa9da75..3288975 100644 --- a/src/main/java/com/cmhi/magent/pojo/po/IfInterfaceInfo.java +++ b/src/main/java/com/cmhi/magent/pojo/po/IfInterfaceInfo.java @@ -2,7 +2,6 @@ package com.cmhi.magent.pojo.po; import com.cmhi.magent.annotation.AutoExternString; import com.cmhi.magent.common.UtilsFormatType; -import com.fasterxml.jackson.annotation.JsonBackReference; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import oshi.hardware.NetworkIF; diff --git a/src/main/java/com/cmhi/magent/pojo/po/NetworkInfo.java b/src/main/java/com/cmhi/magent/pojo/po/NetworkInfo.java index ae27245..e5e4ea7 100644 --- a/src/main/java/com/cmhi/magent/pojo/po/NetworkInfo.java +++ b/src/main/java/com/cmhi/magent/pojo/po/NetworkInfo.java @@ -1,7 +1,5 @@ package com.cmhi.magent.pojo.po; -import com.cmhi.magent.annotation.AutoExternString; -import com.cmhi.magent.common.UtilsFormatType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/src/main/java/com/cmhi/magent/pojo/vo/VersionResp.java b/src/main/java/com/cmhi/magent/pojo/vo/VersionResp.java index 7951b93..a3e94cb 100644 --- a/src/main/java/com/cmhi/magent/pojo/vo/VersionResp.java +++ b/src/main/java/com/cmhi/magent/pojo/vo/VersionResp.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; /** * 版本信息响应类 {@code VersionResp}。 - * + *

* 用于封装版本信息查询接口的响应结果,继承自 {@link BaseRespStatus},包含状态码、消息以及版本的详细信息。 * *

@@ -60,7 +60,7 @@ public class VersionResp extends BaseRespStatus { /** * 版本信息内容。 - * + *

* 表示当前系统或模块的版本详情信息,包括版本号、发布日期以及描述信息。 */ @Schema(description = "版本信息内容,包括版本号、发布日期以及描述信息") diff --git a/src/main/java/com/cmhi/magent/service/PlatformApiService.java b/src/main/java/com/cmhi/magent/service/PlatformApiService.java index 75c83c6..17287f9 100644 --- a/src/main/java/com/cmhi/magent/service/PlatformApiService.java +++ b/src/main/java/com/cmhi/magent/service/PlatformApiService.java @@ -3,6 +3,27 @@ package com.cmhi.magent.service; import com.cmhi.magent.pojo.po.RegisterAgent; import com.fasterxml.jackson.core.JsonProcessingException; +/** + * PlatformApiService 接口定义了与平台 API 通信的核心服务功能。 + *

+ * 该接口包含与平台交互的关键操作,具体实现类负责与平台进行数据交互。 + *

+ * + * @author huangxin@cmhi.chinamobile.com + * @version 1.0.0 + * @since 2025-01-07 + */ public interface PlatformApiService { + + /** + * 注册代理(Agent)。 + *

+ * 该方法用于将代理实例注册到平台,并返回平台生成的响应结果。 + *

+ * + * @param agent 包含代理注册信息的 {@link RegisterAgent} 对象 + * @return 平台返回的结果,通常为一个 JSON 格式的字符串 + * @throws JsonProcessingException 如果在处理 JSON 时发生错误 + */ String registerAgent(RegisterAgent agent) throws JsonProcessingException; } diff --git a/src/main/java/com/cmhi/magent/service/impl/PlatformApiServiceImpl.java b/src/main/java/com/cmhi/magent/service/impl/PlatformApiServiceImpl.java index f9cd8f5..abebca7 100644 --- a/src/main/java/com/cmhi/magent/service/impl/PlatformApiServiceImpl.java +++ b/src/main/java/com/cmhi/magent/service/impl/PlatformApiServiceImpl.java @@ -8,11 +8,45 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; +/** + * PlatformApiServiceImpl 是 {@link PlatformApiService} 的具体实现类。 + *

+ * 该类使用 {@link WebClient} 与平台 API 进行交互,提供了注册代理的功能。 + *

+ * + *
    + *
  • 通过 WebClient 实现 HTTP 调用。
  • + *
  • 在 JSON 序列化时使用辅助工具类 {@link HelperUtils}。
  • + *
  • 提供了同步模式下的 API 调用。
  • + *
+ * + * @author huangxin@cmhi.chinamobile.com + * @version 1.0.0 + * @since 2025-01-07 + */ @Service public class PlatformApiServiceImpl implements PlatformApiService { + + /** + * 用于与平台 API 通信的 WebClient 实例。 + *

+ * 该实例通过 Spring 注解 {@code @Resource} 注入,支持异步和响应式调用。 + *

+ */ @Resource private WebClient webClient; + /** + * 注册代理(Agent)。 + *

+ * 通过向平台 API 提供的注册接口("/register")发送 POST 请求,完成代理的注册操作。 + * 请求体为转换为 JSON 格式的 {@link RegisterAgent} 对象。 + *

+ * + * @param agent 包含代理注册信息的 {@link RegisterAgent} 实例 + * @return 平台返回的注册结果,通常为 JSON 格式的字符串 + * @throws JsonProcessingException 如果在将 {@link RegisterAgent} 对象序列化为 JSON 时发生错误 + */ @Override public String registerAgent(RegisterAgent agent) throws JsonProcessingException { return webClient.post().uri("/register") // 相对 URL diff --git a/src/main/java/com/cmhi/magent/validation/valids/ValidHttpMethod.java b/src/main/java/com/cmhi/magent/validation/valids/ValidHttpMethod.java index eb561c7..08696ee 100644 --- a/src/main/java/com/cmhi/magent/validation/valids/ValidHttpMethod.java +++ b/src/main/java/com/cmhi/magent/validation/valids/ValidHttpMethod.java @@ -33,7 +33,7 @@ import java.lang.annotation.Target; * 该实现通常包含自定义逻辑,确保输入值属于预定义的 HTTP 方法集合。 *

* - * @author + * @author huangxin@cmhi.chinamobile.com * @version 1.0.0 * @since 2025-01-07 */ diff --git a/src/main/java/com/cmhi/magent/validation/valids/ValidPageSize.java b/src/main/java/com/cmhi/magent/validation/valids/ValidPageSize.java index 4e0c364..9c365a2 100644 --- a/src/main/java/com/cmhi/magent/validation/valids/ValidPageSize.java +++ b/src/main/java/com/cmhi/magent/validation/valids/ValidPageSize.java @@ -41,7 +41,7 @@ import java.lang.annotation.Target; * *

* - * @author + * @author huangxin@cmhi.chinamobile.com * @version 1.0.0 * @since 2025-01-07 */