我希望这不是重复的,但我找不到符合我要求的相关问题/答案。
在应用程序中,需要将spring缓存注释(内部使用ehcache)应用于许多服务层的方法。
例如,ContentService 类有以下 2 个方法。
@Caching(cacheable = { @Cacheable(condition = "#baseObj.isCacheEnabled()", value = "cacheName", key = "#baseObj.getCacheKey()") })
@Order(value = 2)
public ReturnObj getPageContent(BaseObject baseObj);
@Caching(cacheable = { @Cacheable(condition = "#baseObj.isCacheEnabled()", value = "cacheName", key = "#baseObj.getCacheKey()") })
@Order(value = 2)
public ReturnObj getModuleContent(BaseObject baseObj);
如您所见,以下注解在每个服务方法注解中都是重复和冗余的。
@Caching(cacheable = { @Cacheable(condition = "#baseObj.isCacheEnabled()", value = "cacheName", key = "#baseObj.getCacheKey()") })
@Order(value = 2)
Question1 有没有一种方法可以扩展 Caching 注释并将多余的东西移到那里,而不是用相同的代码乱扔类?
例如,
@CustomCaching
@Order(value = 2)
public ReturnObj getPageContent(BaseObject baseObj);
@CustomCaching
@Order(value = 2)
public ReturnObj getModuleContent(BaseObject baseObj);
其中 CustomCaching 接口可以扩展 Spring 的 Caching 接口并在一处应用常用的注解。
问题
2 有没有一种方法可以让我@Order(value=2)
在一个共同的地方指定并说,将此注释应用于类中的所有方法?