我有一个带注释方法的类:
@Service
class MessageService{
@AutoWired
MessageDao dao;
public void setDao(MessageDao dao){
this.dao=dao;
}
@Memoize
public void addNode(Message m){
}
@Memoize
public void updateNode(Message m){
}
@Memoize
public List<Message> getMessagesByEntity(String key){
}
}
我需要定义一个方面来做一些缓存查找/管家活动@Around 以上每个方法:
@Around("@annotation(com.spring.aspects.Memoize)")
public Object handledMemoize(ProceedingJoinPoint pjp) throws Throwable
{
.....
......
.....
Object obj = pjp.proceed();
if (args != null)
{
cache.put(Arrays.asList(args), obj);
}
return obj;
}
现在,对于上述每种方法,缓存活动的性质将有所不同。
所以我需要根据调用的实际方法来表现不同的方面。
我如何实现这一目标?
我相信最佳实践是通过以某种方式结合@Memoize 和方法名称检查,为每个底层方法使用单独的方面方法。
任何帮助表示赞赏。