【发布时间】:2013-06-13 14:42:47
【问题描述】:
我使用了基于 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 }
这个注释看起来很长。我尝试使用自定义键生成器,但问题是当我在注释中定义键时,自定义键生成器不会被调用。
所以现在我尝试使用自定义弹簧注释作为解决方法。但我无法找到一个好的参考来开始。基本上我需要为键(租户标识符)添加一个上下文感知参数。
任何帮助将不胜感激。
【问题讨论】:
-
你检查过 using custom annotations 上的 Spring 文档吗?
-
@dimchez 是的。但在我的情况下,需要通过向键添加上下文感知参数来更改每个键。自定义注释上的 Spring 文档没有提供有关如何执行此类操作的详细信息。
-
如果您不想全部使用,您可以使用自定义密钥生成器并注释要用于密钥生成的方法的参数。
标签: spring caching annotations