我使用了基于spring声明注释的缓存方法。以下是我如何使用它,
@Cacheable(value = "users", key = "T(org.mifosplatform.infrastructure.core.service.ThreadLocalContextUtil).getTenant().getName().concat(#username)")
public UserDetails loadUserByUsername(final String username) throws UsernameNotFoundException, DataAccessException { //method body }
这个注释看起来很冗长。我试图使用自定义密钥生成器,但问题是当我在注释中定义一个键时,不会调用自定义密钥生成器。
所以现在我尝试使用自定义spring注释作为解决方法。但我无法找到一个好的参考开始。基本上我需要在密钥(租户标识符)中添加一个上下文感知参数。
非常感谢任何帮助。
答案 0 :(得分:0)
Key必须是一个静态变量。它不能是运行时评估。 您需要覆盖CacheManager,然后进行修改。下面是我扩展HazelcastCacheManager的示例,后者又扩展了spring的Cachemanager
# requirements.txt
my_other_package