public interface ConfigurationCache
表明一个OperationConfiguration的缓存。实现类应该提供一个类似
CacheName -> TargetType -> OperationConfiguration的二级索引结构。
其中,CacheName应当用于区分配置解析器OperateConfigurationParser,比如,
当针对某个TargetType调用解析器OperateConfigurationParser.parse(Class)
获得的配置各项属性都完全一致时,应当认为这些都属于同一个CacheName。
在默认情况下,CacheName应当与解析器的Class.getName()方法返回值保持一致。
接口提供getOrCached(String, Class, Function)方法用于提供"getOrCreate"的操作,
但是该操作存在潜在的线程不安全的风险,推荐实现类自行实现以尽可能的保证其安全性。
OperationConfigurationCache,
OperateConfigurationParser| 限定符和类型 | 方法和说明 |
|---|---|
OperationConfiguration |
getCachedConfiguration(String cacheName,
Class<?> targetType)
获取缓存的配置
|
default OperationConfiguration |
getOrCached(String cacheName,
Class<?> targetType,
Function<Class<?>,OperationConfiguration> configurationFactory)
获取缓存,若不存则先获取配置并缓存
|
void |
setConfigurationCache(String cacheName,
Class<?> targetType,
OperationConfiguration configuration)
若缓存不存在,则将配置添加至缓存
|
void setConfigurationCache(String cacheName, Class<?> targetType, OperationConfiguration configuration)
cacheName - 缓存名称targetType - 解析对象类型configuration - 缓存配置@Nullable OperationConfiguration getCachedConfiguration(String cacheName, Class<?> targetType)
cacheName - 缓存名称targetType - 解析对象类型default OperationConfiguration getOrCached(String cacheName, Class<?> targetType, Function<Class<?>,OperationConfiguration> configurationFactory)
cacheName - 缓存名称targetType - 解析对象类型configurationFactory - 配置的获取方法Copyright © 2022. All rights reserved.