J'essaie d'apprendre le cadre de jeu. Je veux implémenter les callbacks de cycle de vie du cadre de jeu dans mon application. Maintenant, je l'ai vu qu'il peut être facilement fait en utilisant GlobalSettings ci-dessous:Comment implémenter les rappels de cycle de vie de play framework (2.5.x)
object Global extends GlobalSettings {
override def onStart(app: Application) {
Logger.info("Application has started")
}
override def onStop(app: Application) {
Logger.info("Application shutdown...")
}
}
Mais il a été dépréciée dans le cadre de jeu (2.5.x). Et ils fournissent une liaison désirée pour onStart
rappels et pour onStop
et onError
il existe d'autres mécanismes. J'ai regardé dans la documentation de la version 2.5.x et j'ai vu un code comme ci-dessous:
import com.google.inject.AbstractModule
import com.google.inject.name.Names
class Module extends AbstractModule {
def configure() = {
bind(classOf[Hello])
.annotatedWith(Names.named("en"))
.to(classOf[EnglishHello]).asEagerSingleton
bind(classOf[Hello])
.annotatedWith(Names.named("de"))
.to(classOf[GermanHello]).asEagerSingleton
}
}
Mais malheureusement, je ne pouvais pas le comprendre. En utilisant GlobalSettings, il était assez facile d'implémenter les rappels de cycle de vie. Supposons que je vais juste implémenter une info Logger dans les callbacks du cycle de vie. Pas de codes complexes.
Comment puis-je implémenter ceci pour les rappels de début, d'arrêt et d'erreur dans 2.5.x ??
Je ne comprends pas cette liaison de ligne (classOf [Hello]) .à (classOf [EnglishHello]). AsEagerSingleton. pouvez-vous l'expliquer en détails comme ce que la classe Hello et pourquoi utiliser (classOf [EnglishHello]) et ce qui est fait ici en écrivant cette ligne ?? Je suis nouveau dans ce cadre. Peut-on l'expliquer de manière plus simple plz ?? –
Cela signifie que chaque fois que vous demandez une instance de 'Hello' (par exemple' 'classe Bye @Inject() (h: Bonjour) {..}' ') une instance de' EnglishHello' sera injectée (passée). Pour en savoir plus sur la façon dont l'injection de dépendance peut être bénéfique dans cette présentation du créateur de guice: https://www.youtube.com/watch?v=0iSB0L9avmg – rethab
comment pouvez-vous tester des classes qui prennent un paramètre ApplicationLifecycle? – Blankman