首页 > 解决方案 > 可能是什么原因,我的 SimpleCacheCustomizer 在我的测试启动时没有被调用

问题描述

我为我的 Spring Boot 应用程序编写了一个测试。该测试需要访问我的缓存,因此我用以下方式注释了测试类。

@ExtendWith(SpringExtension.class)
@ComponentScan(basePackageClasses = SimpleCacheCustomizer.class)
@ContextConfiguration(classes = CachingConfig.class)
@SpringBootTest(classes = {CachingConfig.class, SimpleCacheCustomizer.class, ConcurrentMapCacheManager.class, CacheAutoConfiguration.class})
public class CachingConfigTest {

然后我必须修改我使用的 ConcurrentMapCacheManager。因此,我添加了一个自动装配字段,我稍后会在测试中访问该字段。

@Autowired
private CachingConfig cachingConfig;

@Autowired
private ConcurrentMapCacheManager cmcm;

在调试时,我注意到我的测试运行时不存在缓存。

在我的假设中,应该在构建应用程序上下文时调用带有 @EnableCaching 注释的 CachingConfig,然后调用 SimpleCacheCustomizer.customize()。

但似乎我错了。

你能告诉我我错过了什么吗

顺便说一下 SimpleCacheCustomizer 看起来像这样。

@Component
public class SimpleCacheCustomizer implements CacheManagerCustomizer<ConcurrentMapCacheManager> {

    @Override
    public void customize(ConcurrentMapCacheManager cacheManager) {
        cacheManager.setCacheNames(Arrays.asList("cache1", "cache2"));
    }

}

标签: spring-bootcachingspring-boot-testspring-cache

解决方案


推荐阅读