理解依赖注入 - 玩Java

时间:2017-06-21 06:25:32

标签: java dependency-injection playframework-2.0

我正在尝试了解Play框架的依赖注入工作流程。

我有以下DI代码,如果在å控制器中编写,则可以正常工作,但是当在单独的类中编写时,注入配置和mailerClient不会实例化属性。

DI是否仅适用于Java中Play框架的控制器?

我的班级无法工作:

public class EmailConfig {

    @Inject MailerClient mailerClient;

    @Inject Configuration configuration;


    /**
     * 
     */
    public EmailConfig() {
        // TODO Auto-generated constructor stub
    }

    public void sendEmail(String subjectConfigName, String toConfigName, String text, String from){
        Email email = new Email();
        email
          .setSubject(this.configuration.getString(subjectConfigName))
          .setFrom(from)
          .addTo(this.configuration.getString(toConfigName))
          .setBodyText(text);

        this.mailerClient.send(email);
    }

}

欢迎任何意见。感谢。

1 个答案:

答案 0 :(得分:0)

控制器自动注入,因此您只需使用@Inject从中注入依赖项,而您的分离类既不是自动也不是 >自定义绑定。因此,应该通过使用Play.current().injector() Play 2.5 )显式调用注入器来完成此类注入。试试这个:

private Configuration configuration = Play.current().injector().instanceOf(Configuration.class);