我正在尝试使用2个separeted路径创建一个应用程序,一个用于API,另一个用于MVC。
我创建了2个ServletRegistrationBean。 /*
的第一个和/api/v1/*
的第二个
这两种情况都运作良好,问题是答复所有控制器。
我正在测试两条路径:
/home
用于MVC控制器/health
用于Rest Controller 但是下面的所有路径都有效。
/api/v1/home
/api/v1/health
/home
/health
我只想要下面的路径
/home
/api/v1/health
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ServletRegistrationBean dispatcherAPIServletRegistration() {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan(HealthController.class.getPackage().getName());
DispatcherServlet servlet = new DispatcherServlet();
servlet.setApplicationContext(context);
ServletRegistrationBean registration = new ServletRegistrationBean(servlet, "/api/v1/*");
registration.setLoadOnStartup(1);
registration.setName("api-v1");
return registration;
}
@Bean
public ServletRegistrationBean dispatcherServletRegistration() {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.scan(HomeController.class.getPackage().getName());
DispatcherServlet servlet = new DispatcherServlet();
servlet.setApplicationContext(context);
ServletRegistrationBean registration = new ServletRegistrationBean(servlet, "/*");
registration.setLoadOnStartup(1);
registration.setName("web-mvc");
return registration;
}
}