Java 如何在Spring boot中迁移AbstractAnnotationConfigDispatcherServletInitializer?
您好,我是SpringBoot新手,目前我正在尝试将基于maven的web应用程序迁移到SpringBoot。 我能够迁移除下面提到的类之外的所有其他配置文件:-ApplicationInitializerJava 如何在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
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 );
}
}
请注意,上面的代码替换了应用程序初始化程序