Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关闭弹簧护套上的DispatcherServlet_Java_Spring_Spring Boot - Fatal编程技术网

Java 关闭弹簧护套上的DispatcherServlet

Java 关闭弹簧护套上的DispatcherServlet,java,spring,spring-boot,Java,Spring,Spring Boot,如何在SpringBoot上禁用DispatcherServlet,甚至尝试通过servlet注册禁用它uri映射显示在日志上: @Bean public ServletRegistrationBean servletRegistrationBean(final DispatcherServlet dispatcherServlet) { final ServletRegistrationBean servletRegistrationBean = new ServletRegistra

如何在SpringBoot上禁用DispatcherServlet,甚至尝试通过servlet注册禁用它uri映射显示在日志上:

@Bean
public ServletRegistrationBean servletRegistrationBean(final DispatcherServlet dispatcherServlet) {
    final ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet);
    servletRegistrationBean.setEnabled(false);

    return servletRegistrationBean;
}
日志

谢谢你的帮助

来自Spring启动文档

Spring Boot希望从应用程序的根目录开始提供所有内容。如果您希望将自己的servlet映射到该URL,您可以这样做,但当然您可能会丢失一些其他启动MVC功能。要添加您自己的servlet并将其映射到根资源,只需声明类型为
servlet
@Bean
,并为其指定特殊的Bean名称
dispatcherServlet
(如果您想关闭它而不是替换它,也可以使用该名称创建不同类型的Bean)


我将下面的代码添加到我的主类中,servlet从日志中删除

@SpringBootApplication(exclude = { DispatcherServletAutoConfiguration.class })

如果排除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);
    }
}

为什么要禁用它…我将对我的应用程序使用“SpringVaadinServlet”,因此我不需要SpringMVC简单地排除
SpringWebMVC
依赖项,或者排除
@EnableAutoConfiguration
注释中的
DispatcherServletAutoConfiguration
。实际上我是using@SpringBootApplication,我应该排除在这里吗@SpringBootApplication(排除={DispatcherServletAutoConfiguration.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);
    }
}