[英]Switch off DispatcherServlet on Spring Boot
如何在 SpringBoot 上禁用 DispatcherServlet,甚至嘗試通過 servlet 注冊禁用它,uri映射出現在日志中:
@Bean
public ServletRegistrationBean servletRegistrationBean(final DispatcherServlet dispatcherServlet) {
final ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet);
servletRegistrationBean.setEnabled(false);
return servletRegistrationBean;
}
日志
2015-06-10 10:39:57.552 INFO 7032 --- [ main] o.s.b.c.e.ServletRegistrationBean : Servlet dispatcherServlet was not registered (disabled)
2015-06-10 10:39:57.553 INFO 7032 --- [ main] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
感謝任何幫助!
我將以下代碼添加到我的主類中,並從日志中刪除了 servlet。
@SpringBootApplication(exclude = { DispatcherServletAutoConfiguration.class })
來自此處的Spring Boot 文檔
Spring Boot 想要從應用程序的根目錄
/
向下提供所有內容。 如果您更願意將您自己的 servlet 映射到該 URL,您可以這樣做,但當然您可能會失去一些其他 Boot MVC 功能。 要添加您自己的 servlet 並將其映射到根資源,只需聲明一個Servlet
類型的@Bean
並為其指定特殊的 bean 名稱dispatcherServlet
(如果您想將其關閉,也可以使用該名稱創建不同類型的 bean 並不更換)。
如果您排除DispatcherServletAutoConfiguration.class
,那么您也需要排除ErrorMvcAutoConfiguration.class
,或者至少我做到了。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@SpringBootApplication(exclude = { DispatcherServletAutoConfiguration.class, ErrorMvcAutoConfiguration.class})
@EnableAspectJAutoProxy
public class CoreApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(CoreApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(CoreApplication.class);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.