【发布时间】:2015-10-08 17:16:27
【问题描述】:
我在了解如何在 Play 2.4 中应用依赖注入的新功能时遇到问题。我对 Guice 很熟悉,但在 Play Documentation 中没有解释实际绑定是如何以及何时发生的。我阅读了官方文档 [1] 并尝试使用最新的 Play Mailer [2] 作为示例。 Play Mailer 示例使用任意类并使用@inject 注释MailerClient 属性。当我尝试使用此类的对象时,属性是null,至少在调试时是这样。那么,我必须在何时何地进行实际注射?我对@singleton 注释有同样的问题。只是解释了如何注释它,而不是如何获取对象。我必须直接使用 Guice,还是集成了一些方法?
[1]https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection
【问题讨论】:
-
你能告诉我们你的代码吗?
-
它基本上就像官方的 Play Mailer 示例。我在另一个类中启动
MyComponent并调用sendMail()方法。 -
我也对此感到困惑,并希望看到更多的例子。我正在编写一些 S3 代码,并且我有一个 S3File 对象,该对象依赖于应该注入的 S3Service。如何创建一个注入 S3Service 的新 S3File 实例?我是否在我的控制器中创建一个注入器?在那种情况下,我想我会使用 'injector.getInstance(S3File.class)' 而不是 'new S3File'?如何创建注入器 - 必须创建 AbstractModule 的特定 impl 来为这一类进行绑定似乎有点过头了。如果不是这个,我界面上的@ImplementedBy 会做什么?
标签: java playframework dependency-injection guice playframework-2.4