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)
}
}
Вы не должны переопределять '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- сервлетов и фильтров) в справочном руководстве. –
@ M.Deinum - оцените ваш ответ. Написал ответ. – plspl