Ich habe Probleme zu verstehen, wie die neue Funktion von Dependency Injection in Play 2.4 angewendet wird. Ich kenne Guice und vermisse in der Play-Dokumentation eine Erklärung, wie und wann die eigentliche Bindung stattfindet. Ich habe die offizielle Doku [1] gelesen und versucht, den neuesten Play Mailer [2] als Beispiel zu verwenden. Das Play Mailer-Beispiel verwendet eine beliebige Klasse und kennzeichnet die -Eigenschaft mit @inject
. Wenn ich versuche, ein Objekt dieser Klasse zu verwenden, ist die Eigenschaft null
zumindest während des Debuggens. Also, wo und wann muss ich die Injektion machen? Ich habe das gleiche Problem für die @singleton
Annotation. Es wird nur erklärt, wie man es kommentiert, aber nicht, wie man ein Objekt erhält. Muss ich Guice direkt verwenden oder ist es integriert wie?Play 2,4 Dependency Injection verstehen
[1] https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection
[2] https://github.com/playframework/play-mailer
Können Sie uns Ihren Code zeigen? – Salem
Es ist im Grunde wie das offizielle Play Mailer Beispiel. Ich initiiere die 'MyComponent' in einer anderen Klasse und rufe die' sendMail() 'Methode auf. – linsenfips
Ich bin auch davon verwirrt und würde gerne einige weitere Beispiele sehen. Ich schreibe einen S3-Code und ich habe ein S3File-Objekt abhängig von einem S3Service, der injiziert werden soll. Wie erstelle ich eine neue S3File-Instanz mit S3Service? Erstelle ich einen Injektor in meinem Controller? In diesem Fall würde ich "injector.getInstance (S3File.class)" anstelle von "new S3File" verwenden? Wie erstelle ich den Injektor - es scheint wie Overkill zu sein, ein bestimmtes Impl von AbstractModule zu erzeugen, um die Bindung für diese eine Klasse zu machen. Was macht die @ImplementedBy auf meiner Schnittstelle, wenn nicht das? – eljaydub