spring-boot - 可能是什么原因,我的 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"));
}
}
解决方案
推荐阅读
- python - 修复格式错误的 tsv
- python - 我使用套接字在 python 中编写一个反向 shell 收费,我得到一个错误,说'int'对象没有属性'encode'
- javascript - 在 javascript 中使用正则表达式验证用户名
- python-3.x - keras中的模型在进行拟合时会出错
- c - 如何解析 3 字节长度的 BER-TLV TAG
- assembly - 汇编 - 隐式计算会更改操作码吗?
- python - 如何将大于 9 的数字传递给 psycopg2 选择语句
- python - 具有不必要特征的图像中的细胞计数
- c++ - 将对 main() 中的局部变量的引用传递给其他线程/函数是不好的做法吗?
- api - 如何从 API 检索沃尔玛产品