diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/config/DataManagementConfig.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/config/DataManagementConfig.java index 623c334..4d8d67a 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/config/DataManagementConfig.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/config/DataManagementConfig.java @@ -21,8 +21,8 @@ public class DataManagementConfig { /** * 缓存管理器 */ - @Bean - public CacheManager cacheManager() { + @Bean("dataManagementCacheManager") + public CacheManager dataManagementCacheManager() { return new ConcurrentMapCacheManager("datasets", "datasetFiles", "tags"); } diff --git a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphEntityService.java b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphEntityService.java index 6e6615c..02c6fb1 100644 --- a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphEntityService.java +++ b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphEntityService.java @@ -63,7 +63,8 @@ public class GraphEntityService { @Cacheable(value = RedisCacheConfig.CACHE_ENTITIES, key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, #entityId)", - unless = "#result == null") + unless = "#result == null", + cacheManager = "knowledgeGraphCacheManager") public GraphEntity getEntity(String graphId, String entityId) { validateGraphId(graphId); return entityRepository.findByIdAndGraphId(entityId, graphId) @@ -71,7 +72,8 @@ public class GraphEntityService { } @Cacheable(value = RedisCacheConfig.CACHE_ENTITIES, - key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, 'list')") + key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, 'list')", + cacheManager = "knowledgeGraphCacheManager") public List listEntities(String graphId) { validateGraphId(graphId); return entityRepository.findByGraphId(graphId); diff --git a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphQueryService.java b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphQueryService.java index 88cb932..3050d11 100644 --- a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphQueryService.java +++ b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/application/GraphQueryService.java @@ -73,7 +73,8 @@ public class GraphQueryService { * @param limit 返回节点数上限 */ @Cacheable(value = RedisCacheConfig.CACHE_QUERIES, - key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, #entityId, #depth, #limit, @resourceAccessService.resolveOwnerFilterUserId(), @resourceAccessService.canViewConfidential())") + key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, #entityId, #depth, #limit, @resourceAccessService.resolveOwnerFilterUserId(), @resourceAccessService.canViewConfidential())", + cacheManager = "knowledgeGraphCacheManager") public SubgraphVO getNeighborGraph(String graphId, String entityId, int depth, int limit) { validateGraphId(graphId); String filterUserId = resolveOwnerFilter(); @@ -573,7 +574,8 @@ public class GraphQueryService { * @param query 搜索关键词(支持 Lucene 查询语法) */ @Cacheable(value = RedisCacheConfig.CACHE_SEARCH, - key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, #query, #page, #size, @resourceAccessService.resolveOwnerFilterUserId(), @resourceAccessService.canViewConfidential())") + key = "T(com.datamate.knowledgegraph.infrastructure.cache.GraphCacheService).cacheKey(#graphId, #query, #page, #size, @resourceAccessService.resolveOwnerFilterUserId(), @resourceAccessService.canViewConfidential())", + cacheManager = "knowledgeGraphCacheManager") public PagedResponse fulltextSearch(String graphId, String query, int page, int size) { validateGraphId(graphId); String filterUserId = resolveOwnerFilter(); diff --git a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/GraphCacheService.java b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/GraphCacheService.java index 338be28..107002f 100644 --- a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/GraphCacheService.java +++ b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/GraphCacheService.java @@ -2,6 +2,7 @@ package com.datamate.knowledgegraph.infrastructure.cache; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.data.redis.core.StringRedisTemplate; @@ -28,7 +29,7 @@ public class GraphCacheService { private final CacheManager cacheManager; private StringRedisTemplate redisTemplate; - public GraphCacheService(CacheManager cacheManager) { + public GraphCacheService(@Qualifier("knowledgeGraphCacheManager") CacheManager cacheManager) { this.cacheManager = cacheManager; } diff --git a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/RedisCacheConfig.java b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/RedisCacheConfig.java index 081119d..5b1da91 100644 --- a/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/RedisCacheConfig.java +++ b/backend/services/knowledge-graph-service/src/main/java/com/datamate/knowledgegraph/infrastructure/cache/RedisCacheConfig.java @@ -7,6 +7,7 @@ import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -43,8 +44,9 @@ public class RedisCacheConfig { /** 搜索缓存:全文搜索结果 */ public static final String CACHE_SEARCH = "kg:search"; - @Bean - public CacheManager cacheManager( + @Primary + @Bean("knowledgeGraphCacheManager") + public CacheManager knowledgeGraphCacheManager( RedisConnectionFactory connectionFactory, KnowledgeGraphProperties properties ) { diff --git a/backend/services/knowledge-graph-service/src/test/java/com/datamate/knowledgegraph/infrastructure/cache/CacheableIntegrationTest.java b/backend/services/knowledge-graph-service/src/test/java/com/datamate/knowledgegraph/infrastructure/cache/CacheableIntegrationTest.java index a49ccb1..13e873c 100644 --- a/backend/services/knowledge-graph-service/src/test/java/com/datamate/knowledgegraph/infrastructure/cache/CacheableIntegrationTest.java +++ b/backend/services/knowledge-graph-service/src/test/java/com/datamate/knowledgegraph/infrastructure/cache/CacheableIntegrationTest.java @@ -47,8 +47,8 @@ class CacheableIntegrationTest { @EnableCaching static class Config { - @Bean - CacheManager cacheManager() { + @Bean("knowledgeGraphCacheManager") + CacheManager knowledgeGraphCacheManager() { return new ConcurrentMapCacheManager( RedisCacheConfig.CACHE_ENTITIES, RedisCacheConfig.CACHE_QUERIES,