我有一个带有 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对于很好的教程。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!