我有一个带有 MailService 的 grails 应用程序插入。我需要使用 sendMail(Closure callable) 从 java 类发送电子邮件方法。
在一个 groovy 类中,我采用以下方式:
mailService.sendMail
{
to ["test@gmail.com"]
subject "Mail Subject"
body "this is a message body")
}
我怎样才能从 java 类做同样的事情?
请您参考如下方法:
一开始注入(inject)mailService进入你的java类。假设您的 java 类名是 JavaMailSender那么该类的代码可能如下所示
class JavaMailSender {
@Autowired
private MailService mailService;
private void methodAsClosure(MailMessageBuilder builder) {
builder.to(Arrays.asList("purno998@gmail.com"));
builder.subject("Mail Subject");
builder.body("this is a message body");
}
void sendMail() {
MethodClosure closure = new MethodClosure(this, "methodAsClosure");
mailService.sendMail(closure);
}
}
现在只剩下一件事,您必须注册
JavaMailSender作为
grails-app/conf/resources.groovy 中的 bean像这样
beans = {
javaMailSender(JavaMailSender)
}
致谢 http://www.jroller.com/melix/entry/coding_a_groovy_closure_in对于很好的教程。




