From 09b1bbe51ecfa1b6c4aeddb3f7dd0ff18e248297 Mon Sep 17 00:00:00 2001 From: hpd840321 Date: Sun, 10 May 2026 12:32:54 +0800 Subject: [PATCH] fix: resolve GroupPersonSynPoolProperties bean conflict via TypeFilter exclude - Add GroupPersonSynExcludeFilter to @ComponentScan excludeFilters - Filters out cn.cloudwalk.service.organization.config.GroupPersonSyn* from component scanning, keeping only the starter module's version - Service now starts successfully from fat JAR without bean conflicts --- .../starter/organization/OrganizationServer.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java b/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java index bd7db8bb..224fe4e1 100644 --- a/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java +++ b/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java @@ -21,9 +21,13 @@ import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.context.annotation.FilterType; import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.annotation.Order; +import org.springframework.core.type.classreading.MetadataReader; +import org.springframework.core.type.classreading.MetadataReaderFactory; +import org.springframework.core.type.filter.TypeFilter; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpRequestFactory; @@ -41,10 +45,13 @@ import org.springframework.web.client.RestTemplate; @EnableScheduling @EnableFeignClients(basePackages={"cn.cloudwalk"}) @MapperScan(basePackages={"cn.cloudwalk.**.mapper"}) -@ComponentScan(basePackages={"cn.cloudwalk.task.**", "cn.cloudwalk.**"}) @EnableAsync @EnableHystrix @EnableAspectJAutoProxy(proxyTargetClass=true, exposeProxy=true) +@ComponentScan(basePackages={"cn.cloudwalk.task.**", "cn.cloudwalk.**"}, + excludeFilters = @ComponentScan.Filter( + type = FilterType.CUSTOM, + classes = {OrganizationServer.GroupPersonSynExcludeFilter.class})) public class OrganizationServer extends SpringBootServletInitializer implements WebApplicationInitializer { @@ -109,5 +116,12 @@ implements WebApplicationInitializer { } private static final long SHUTDOWN_DRAIN_MS = 30_000L; + + static class GroupPersonSynExcludeFilter implements TypeFilter { + public boolean match(MetadataReader metadataReader, MetadataReaderFactory factory) { + return metadataReader.getClassMetadata().getClassName() + .contains("service.organization.config.GroupPersonSyn"); + } + } }