我的使用场景是这样的,有dev ,test, prd 3个环境。我想要area的名称和这3个环境的名称对应起来,是否支持?
因为dev和test的redis是同一个,所以如果不区分的话,会造成dev和test2个环境的redis数据想到覆盖影响。
我现在想到的办法是在配置文件中加了一个参数env_flag =dev或 env_flag=test
但我不知道应该如果将这个env_flag的值,传给area?
类似于
@value("${env_flag}")
private String myCacheArea;
@cached(area="这里希望能用到上面的myCacheArea的值",name="findxxxx",key="xxx",cacheType = CacheType.BOTH)
或者是能在配置文件中提供一个参数能指定一下area的名称也行,现在我看配置文件中没办法修改默认参数的名称,只能是默认找default,有没有办法提供个参数可以设置默认area的名称?
2条答案
按热度按时间2cmtqfgy1#
有遇到类似的场景.
可以在GlobalCacheConfig设置area不作为Key前缀——com.alicp.jetcache.anno.support.GlobalCacheConfig#setAreaInCacheName
然后在cacheBuilder中设置对应keyPrefix(比如根据不同profile设置不同的keyPrefix对应你的dev,test,prd)
ndh0cuux2#
你看下代码,有个keyPrefix属性