I have controller mappings to /user and /order:
@RestController @RequestMapping("/users") public class UserController { ... } @RestController @RequestMapping("/orders") public class OrderController { ... } I want to access these by URL at http://localhost:8080/api/users and http://localhost:8080/api/orders, respectively.
How do I achieve this in Spring Boot?
Then, we only need to apply the annotation to each controller we want to prefix: @Controller @ApiPrefixController public class SomeController { @RequestMapping("/users") @ReponseBody public String getAll(){ // ... } }
@Controller annotation indicates that the annotated class is a controller. It is a specialization of @Component and is autodetected through classpath scanning. It is typically used in combination with annotated handler methods based on the @RequestMapping annotation.
You can provide a mapping to root context path of your spring boot application to /api/* in your custom configuration.
import org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration; import org.springframework.boot.context.embedded.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.DispatcherServlet; @Configuration public class DispatcherServletCustomConfiguration { @Bean public DispatcherServlet dispatcherServlet() { return new DispatcherServlet(); } @Bean public ServletRegistrationBean dispatcherServletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean( dispatcherServlet(), "/api/"); registration.setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME); return registration; } } or add this to your application.properties in src\main\resources folder
server.contextPath=/api/* EDIT
As of Spring Boot 2.x the property has been deprecated and should be replaced with
server.servlet.contextPath=/api/* More you find here Spring Boot Context Root and here Add servlet mapping to DispatcherServlet
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With