Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 如何在Spring boot中迁移AbstractAnnotationConfigDispatcherServletInitializer?_Java_Spring Mvc_Spring Boot - Fatal编程技术网

Java 如何在Spring boot中迁移AbstractAnnotationConfigDispatcherServletInitializer?

Java 如何在Spring boot中迁移AbstractAnnotationConfigDispatcherServletInitializer?,java,spring-mvc,spring-boot,Java,Spring Mvc,Spring Boot,您好,我是SpringBoot新手,目前我正在尝试将基于maven的web应用程序迁移到SpringBoot。 我能够迁移除下面提到的类之外的所有其他配置文件:-ApplicationInitializer public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] g

您好,我是SpringBoot新手,目前我正在尝试将基于maven的web应用程序迁移到SpringBoot。 我能够迁移除下面提到的类之外的所有其他配置文件:-ApplicationInitializer

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { Application.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

    @Override
    protected Filter[] getServletFilters() {
        Filter [] singleton = { new CORSFilter()};
        return singleton;
    }

}
公共类应用程序初始化器扩展了AbstractAnnotationConfigDispatcherServletInitializer{
@凌驾
受保护类[]getRootConfigClasses(){
返回新类[]{Application.Class};
}
@凌驾
受保护类[]getServletConfigClasses(){
返回null;
}
@凌驾
受保护的字符串[]getServletMappings(){
返回新字符串[]{”/“};
}
@凌驾
受保护的筛选器[]getServletFilters(){
Filter[]singleton={new CORSFilter()};
返回单身;
}
}
我发现了一个类似的参考链接,它做同样的工作,但我不知道如何为我的案件这样做。 有人能帮我弄清楚如何在DispatcherServlet中注册我的过滤器吗。
提前感谢。

要使用SpringBootServletInitializer(这就是您提到的)向dispatcher注册您的筛选器,您需要添加FilterRegistrationBean。可能是这样的:

public class Application extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure( SpringApplicationBuilder application )
    {
        return application.sources( Application.class );
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean( ServletRegistrationBean servletRegistrationBean )
    {
        return new FilterRegistrationBean( new CORSFilter(), servletRegistrationBean );
    }

    public static void main( String[] args )
    {
        SpringApplication.run( Application.class, args );
    }
}
请注意,上面的代码替换了
应用程序初始化程序