2014-09-30 2 views
1

У меня есть простой webapp, построенный с использованием springboot и scala. Я могу создать простой API для отдыха в своем приложении. Теперь я пытаюсь добавить фильтр для поддержки etags. Однако я не увенчаюсь успехом. Вот как выглядит мое главное приложение. Мне что-то не хватает в настройке фильтра здесь?Фильтр для scala springboot app

object SampleApplication { 
    def main(args: Array[String]) { 
    println("SA:>>>>hello inside main"); 
    SpringApplication.run(classOf[Launcher]); 
    } 
} 



@Configuration 
@EnableAutoConfiguration 
@ComponentScan 
class Launcher extends SpringBootServletInitializer { 
    println("SA:>>>>>>inside Launcher beg") 

    override def onStartup(servletContext: ServletContext): Unit = { 
    println("SA:>>>>inside Launcher onStartup") 
    servletContext.addFilter("etagFilter","org.springframework.web.filter.ShallowEtagHeaderFilter").addMappingForServletNames(null,false,"/*"); 
    //super.onStartup(servletContext) 
    } 

    override def configure(app: SpringApplicationBuilder): SpringApplicationBuilder = { 
    println("SA:>>>>> inside Launcher") 
    app.sources(classOf[Launcher]) 
    //super.configure(app) 
    } 
} 
+1

Вы не должны переопределять 'onStartup', что нарушает' SpringBootServletInitializer', рядом, что при использовании 'main' для загрузки приложения для' SpringBootServletInitializer' даже не используются. Просто добавьте фильтр в качестве компонента в конфигурацию, Spring Boot зарегистрирует его для вас. Это также объясняется [здесь] (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-embedded-container- сервлетов и фильтров) в справочном руководстве. –

+0

@ M.Deinum - оцените ваш ответ. Написал ответ. – plspl

ответ

0

Благодаря @M. Дейнин, заработал это через несколько минут. Фильтр прекрасно подключается к моему приложению.

object SampleApplication { 
    def main(args: Array[String]) { 
    SpringApplication.run(classOf[SampleConfig]); 
    } 
} 

@EnableAutoConfiguration 
@Bean 
@ComponentScan 
@Configuration 
class MyFilter extends ShallowEtagHeaderFilter{ 
} 
Смежные вопросы