Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.PARAMETER)
- public @interface Version {
- }
- public class HeaderVersionArgumentResolver implements HandlerMethodArgumentResolver {
- @Override
- public boolean supportsParameter(MethodParameter methodParameter) {
- return methodParameter.getParameterAnnotation(Version.class) != null;
- }
- @Override
- public Object resolveArgument(
- MethodParameter methodParameter,
- ModelAndViewContainer modelAndViewContainer,
- NativeWebRequest nativeWebRequest,
- WebDataBinderFactory webDataBinderFactory) throws Exception {
- HttpServletRequest request
- = (HttpServletRequest) nativeWebRequest.getNativeRequest();
- return request.getHeader("Version");
- }
- }
- @Configuration
- public class WebConfig implements WebMvcConfigurer {
- @Override
- public void addArgumentResolvers(
- List<HandlerMethodArgumentResolver> argumentResolvers) {
- argumentResolvers.add(new HeaderVersionArgumentResolver());
- }
- }
- public ResponseEntity findByVersion(@PathVariable Long id, @Version String version)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement