【问题标题】:how to Migrate AbstractAnnotationConfigDispatcherServletInitializer in Spring boot?如何在 Spring Boot 中迁移 AbstractAnnotationConfigDispatcherServletInitializer?
【发布时间】:2017-09-13 08:17:11
【问题描述】:

您好,我是 Spring Boot 的新手,目前我正在尝试将基于 Maven 的 Web 应用程序迁移到 Spring Boot。 除了下面提到的类之外,我能够迁移所有其他配置文件:- 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;
    }

}

我找到了一个与Reference link 类似的参考链接,它的作用相同,但我不确定如何针对我的情况执行此操作。 谁能帮我弄清楚如何使用调度程序 servlet 注册我的过滤器。 提前致谢。

【问题讨论】:

    标签: java spring-mvc spring-boot


    【解决方案1】:

    要使用 SpringBootServletInitializer(这就是您所指的)向调度程序注册您的过滤器,您需要添加 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 );
        }
    }
    

    请注意,上面的代码替换您的ApplicationInitializer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 2019-11-23
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      相关资源
      最近更新 更多