Play 2.4 programını kullanıyorum. Yeni dinamik bağımlılık enjeksiyon oynatma özelliğini kullanarak kendi sınıfımla varsayılan yönlendiriciyi değiştirmek istiyorum. Bunu yapmak için adımlar nelerdir?Oynatıcıda Özel Yönlendirici 2.4
7
A
cevap
3
olası bir çözüm yeni yönlendirici bağlamak, yeni Guice Modülü yaratmak olacaktır: Yeni oluşturulan modül kullanılarak,
class RouterModule extends AbstractModule {
override def configure(): Unit = {
bind(classOf[Router]).to(classOf[CustomRouter])
}
}
Ardından varsayılan yapılandırılmış yönlendirici geçersiz kılar, yeni bir Uygulama Yükleyici, tanımlamak :
class MyApplicationLoader extends GuiceApplicationLoader with GuiceableModuleConversions {
override protected def overrides(context: Context): Seq[GuiceableModule] = {
Seq(fromGuiceModule(new RouterModule)) ++ super.overrides(context)
}
}
Ve dosyasına koyarak içinde, yerine varsayılan biri, yeni oluşturulan uygulama yükleyici kullanın:
play.application.loader = "de.zalando.store.pdp.modules.MyApplicationLoader"
https://www.playframework.com/documentation/2.4.x/ScalaRouting başına: sbt dosyasında aşağıdaki ifadeyi eklemeniz gerekir:; yollarıGenerator: = EnjekteRoutesJenerator? Özel rotanın gerçekten nasıl yazıldığına dair doktora işaret edebilir misiniz? Bağladığım dokümana sahip değil. – 0fnt
IMHO, enjekte edilen bağımlılıkları değiştirmek için "Bileşenler" in (https://www.playframework.com/documentation/2.4.x/ScalaCompileTimeDependencyInjection) yararına olabilir. Böylelikle yeni ApplicationLoader'ı yazmanız yeterli, application.conf dosyasında buna başvurmalısınız. Guice modülünü yazmaya gerek yok. MessageApi'yi değiştirmek istiyorsanız aynı şey – iwalktheline