Java注释 - 用于避免冗余注释的继承

时间:2013-10-21 06:23:54

标签: java annotations

我希望这不是重复,但我找不到与我的要求相关的问题/答案。

在应用程序中,需要将spring缓存注释(内部使用ehcache)应用于许多服务层的方法。

例如,ContentService类有以下两种方法。

@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)

问题1 有没有办法可以扩展缓存注释并在那里移动冗余的东西,而不是用相同的代码乱丢这些类?

例如,

@CustomCaching
@Order(value = 2)
public ReturnObj getPageContent(BaseObject baseObj);

@CustomCaching
@Order(value = 2)
public ReturnObj getModuleContent(BaseObject baseObj);

其中CustomCaching接口可以扩展Spring的缓存接口,并在一个地方应用通常需要的注释。

问题2 有没有办法可以在一个公共位置指定@Order(value=2)并说,将此注释应用于类中的所有方法?

0 个答案:

没有答案