我在Infinispan中使用嵌入式缓存架构,允许动态创建/删除缓存。
如果用户尝试获取不存在的缓存,则需要获取异常,但EmbeddedCacheManager
API对此没有帮助。此API提供了两个选项
get(String name, true)
- 获取并创建get(String name, false)
获取但不创建我的做法?当用户simple获取缓存时,我们使用get(String name, false)
,当用户创建缓存时,我们使用get(String name, true)
。到目前为止,非常好。
现在我遇到了一个问题:某些缓存不是由应用程序创建的,而是在XML中定义的。因此,当用户使用get(String name, false)
获取其中一个“内置”缓存时,它不会获得缓存。
如果我们能够识别XML中定义的缓存,我们就可以解决这些问题。
注意:目前,我们正在为XML中定义的缓存的名称添加前缀,但这对于代码抽象来说是丑陋的,并且变得非常混乱。