我正在使用適用於grails的AWS插件。我正嘗試使用Groovy類中的sesMail閉包,而不是服務或控制器,例如在一個方法中:從Groovy類調用grails插件關閉
String msgId = sesMail {
from props.from
replyTo props.replyTo
to prop.to
html props.body
}
我得到一個錯誤,說sesMail不是一個Groovy類的方法。我的問題是:
我怎麼能調用一個插件的閉包是這些蓋子是如何定義並提出在Grails的服務,從一個普通的Groovy類
控制器此之後我很好奇,通常可用在服務和控制器中可用。我無法在插件中找到sesMail的定義。
感謝
偉大的答案謝謝。我遇到的唯一問題是確保sendSesMail bean不是單例。作爲默認情況下的單身人士,當多個線程發送電子郵件時,它會引起與to,from和cc地址重疊的大問題。無論如何,通過將範圍更改爲原型來簡單修復。 –
@ConorPower默認情況下它是單身嗎?我不這麼認爲。我認爲這是一個普通的實用bean,而不是服務類。 – dmahapatro
插件中的bean定義不是單例。然而,當我將bean定義添加到resources.groovy時,它創建了一個單例實例(與插件中定義的實例不同,因爲我必須注入必要的證書),這就是問題出現的地方。也許我應該把我的groovy類聲明爲一個bean,並在那裏使用ref(「sendSesMail」)來獲得插件bean? –