本来想通过实现HandlerMethodReturnValueHandler接口,对返回值进行处理。(实现了MessageSource,想通过code来获取Message中的值)但是呢,死活成功不了。本以为Bean没有加载,但是看了一下日志,Bean都有了。
debug了一下源码:发现之所以处理不了是因为被抢了,在selectHandler方法中,选取了RequestResponseBodyMethodProcessor作为返回值的处理方法(因为我的controller方法注解了@ResponseBody)。
我自己写的Handler是ResultReturnHandler,在List的14地址下,所以selectHandler按顺序先选取了RequestResponseBodyMethodProcessor。
所以本来的目的通过code来获取Message不太好通过HandlerMethodReturnValueHandler实现了
只好写一个aspect了
通过对返回值类型为Result的拦截,实现需要的结果
@Around("execution(tech.yiyehu.framework.