簡體   English   中英

在 Spring Boot 上關閉 DispatcherServlet

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM