我正在尝试了解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);
}
}
欢迎任何意见。感谢。
答案 0 :(得分:0)
控制器自动注入,因此您只需使用@Inject
从中注入依赖项,而您的分离类既不是自动也不是 >自定义绑定。因此,应该通过使用Play.current().injector()
( Play 2.5 )显式调用注入器来完成此类注入。试试这个:
private Configuration configuration = Play.current().injector().instanceOf(Configuration.class);