大家好,又见面了,我是你们的朋友全栈君。
/**
* Searches {@link org.springframework.web.bind.annotation.RequestMapping RequestMapping}
* annotation on the given method argument and extracts
* If RequestMapping annotation is not found, NoRequestMappingFoundException is thrown.
* {@link org.springframework.http.HttpMethod HttpMethod} type equivalent to
* {@link org.springframework.web.bind.annotation.RequestMethod RequestMethod} type
*
* @param element AnnotatedElement object to be examined.
* @return Mapping object
*/
Mapping extractMapping(AnnotatedElement element) {
Annotation annotation = findMappingAnnotation(element);
String[] urls;
RequestMethod requestMethod;
String consumes;
if (annotation instanceof RequestMapping) {
RequestMapping requestMapping = (RequestMapping) annotation;
requestMethod = requestMapping.method().length == 0
? RequestMethod.GET : requestMapping.method()[0];
urls = requestMapping.value();
consumes = StringHelper.getFirstOrEmpty(requestMapping.consumes());
} else if (annotation instanceof GetMapping) {
requestMethod = RequestMethod.GET;
urls = ((GetMapping) annotation).value();
consumes = StringHelper.getFirstOrEmpty(((GetMapping) annotation).consumes());
} else if (annotation instanceof PostMapping) {
requestMethod = RequestMethod.POST;
urls = ((PostMapping) annotation).value();
consumes = StringHelper.getFirstOrEmpty(((PostMapping) annotation).consumes());
} else if (annotation instanceof PutMapping) {
requestMethod = RequestMethod.PUT;
urls = ((PutMapping) annotation).value();
consumes = StringHelper.getFirstOrEmpty(((PutMapping) annotation).consumes());
} else if (annotation instanceof DeleteMapping) {
requestMethod = RequestMethod.DELETE;
urls = ((DeleteMapping) annotation).value();
consumes = StringHelper.getFirstOrEmpty(((DeleteMapping) annotation).consumes());
} else if (annotation instanceof PatchMapping) {
requestMethod = RequestMethod.PATCH;
urls = ((PatchMapping) annotation).value();
consumes = StringHelper.getFirstOrEmpty(((PatchMapping) annotation).consumes());
} else {
throw new NoRequestMappingFoundException(element);
}
HttpMethod httpMethod = HttpMethod.resolve(requestMethod.name());
String url = StringHelper.getFirstOrEmpty(urls);
MediaType mediaType;
try {
mediaType = MediaType.valueOf(consumes);
} catch (InvalidMediaTypeException exception) {
mediaType = MediaType.APPLICATION_JSON_UTF8;
}
return new Mapping(httpMethod, url, mediaType);
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144984.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...