@RestController @RequestMapping("/api/users") public class UserController { @GetMapping("/{id}") public User getUser(@PathVariable Long id) { User user = userService.findById(id); return user; } @PostMapping public User createUser(@RequestBody User user) { User savedUser = userService.save(user); return savedUser; } } @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @Autowired private UserController userController; @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("forward:/index.html"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/public/"); } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("GET", "POST", "PUT", "DELETE") .allowedHeaders("*") .allowedOrigins("*"); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoggingInterceptor()); } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(new MappingJackson2HttpMessageConverter()); converters.add(new StringHttpMessageConverter()); } @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { argumentResolvers.add(new RequestBodyArgumentResolver()); } @Override public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) { returnValueHandlers.add(new ResponseBodyReturnValueHandler()); } @Override public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { exceptionResolvers.add(new RestExceptionHandler()); } @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { configurer.defaultContentType(MediaType.APPLICATION_JSON); } @Bean public HandlerMapping handlerMapping() { RequestMappingHandlerMapping mapping = new RequestMappingHandlerMapping(); mapping.setOrder(0); mapping.setInterceptors(new Object[] {new AnotherInterceptor()}); return mapping; } @Bean public HandlerAdapter handlerAdapter() { RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter(); adapter.setArgumentResolvers(Arrays.asList(new HandlerMethodArgumentResolver[] {new RequestParamArgumentResolver()})); adapter.setReturnValueHandlers(Arrays.asList(new HandlerMethodReturnValueHandler[] {new ResponseBodyReturnValueHandler()})); return adapter; } @Bean public HandlerExceptionResolver exceptionResolver() { ExceptionHandlerExceptionResolver exceptionResolver = new ExceptionHandlerExceptionResolver(); exceptionResolver.setMessageConverters(Arrays.asList(new HttpMessageConverter<?>[] {new MappingJackson2HttpMessageConverter()})); return exceptionResolver; } @Bean public HomeController homeController() { return new HomeController(); } @Bean public UserController userController() { return new UserController(); } } @SpringBootApplication public class MyRestServiceApplication { public static void main(String[] args) { SpringApplication.run(MyRestServiceApplication.class, args); } }


上一篇:
下一篇:
切换中文