我正在嘗試在帶有macwire DI的Playframework 2.4上構建應用程序,並且我從Play中遇到了httpFilters問題!這裏就是我試圖做一個例子如何在playframework中運行httpFilters 2.4
class ExampleFilter extends Filter {
def apply(nextFilter: RequestHeader => Future[Result])
(requestHeader: RequestHeader): Future[Result] = {
nextFilter(requestHeader).map { result =>
result.withHeaders("Example" -> "test")
}
}
}
class Filters(ex:ExampleFilter) extends HttpFilters {
val filters = Seq(ex)
}
DI模塊
trait Module extends EhCacheComponents with BuiltInComponents {
lazy val exampleFilter = wire[ExampleFilter]
lazy val filters = wire[Filters]
Loader類
class Loader extends ApplicationLoader {
def load(context: Context) = {
new MyComponents(context).application
}
}
class MyComponents(context: Context) extends BuiltInComponentsFromContext(context) with Module {
lazy val router: Router = wire[Routes] withPrefix "/"
}
application.conf的一部分,是
play.http.filters = Filters
和ExampleFilter不起作用。我得到沒有「示例」標題的響應
你在application.conf中配置了你的應用程序加載器嗎? play.application.loader = Loader – rethab
是的,一切正常,除了那些過濾器 – mrxelik