3.6.2 示例2
我们再模仿@RequestBody
和@ResponseBody
的实现原理做一个简单的示例。
请求体注解:
@Target({
ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestPerson {
}
返回体注解:
@Target({
ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponsePerson {
}
针对Person的请求和返回处理器:
public class RequestResponsePersonMethodProcessor extends AbstractMessageConverterMethodProcessor {
public RequestResponsePersonMethodProcessor(List<HttpMessageConverter<?>> converters) {
super(converters);
}
@Override //HandlerMethodArgumentResolver的重载方法
public boolean supportsParameter(MethodParameter parameter) {
return parameter.hasMethodAnnotation(ResponsePerson.clas