在這里記一下,注冊時(shí)發(fā)送出email就行了,至于如果運(yùn)行配置和運(yùn)行acegi在官網(wǎng)上就能查到。
useMail = true
mailHost = "smtp.sina.com"
mailUsername = "xxxxxxx"
mailPassword = "xxxxxxx"
mailProtocol = "smtp"
mailFrom = "xxxxxxx@sina.com"
mailPort = 25
javaMailProperties=["mail.smtp.auth":"true","mail.smtp.socketFactory.fallback":"false"]
defaultRole="user"
defaultTargetUrl = "/login/main.gsp"
其中javaMailProperties=["mail.smtp.auth":"true","mail.smtp.socketFactory.fallback":"false"]是關(guān)鍵,spring的email默認(rèn)不進(jìn)行認(rèn)證的,如果只加"mail.smtp.auth":"true",也不行,問了下網(wǎng)友,加上后面的屬性就行了。
在這里也學(xué)習(xí)到grails的service歸約規(guī)則:
8. The Service Layer
Grails服務(wù)的一個(gè)重要方面是,有能力利用Spring 框架的依賴注入能力。
Grails支持 "依賴注入通過規(guī)約". 換句話說,你可以使用一個(gè)屬性名表示的一個(gè)服務(wù)的類名,自動(dòng)把他們注入到 controllers, tag
libraries,等等。
作為示例,給定的服務(wù)名為BookService
,
如果你像下面這樣在controller中放置一個(gè)名為bookService
的屬性:
class BookController {
def bookService
…
}
在這種情況下,Spring 容器將自動(dòng)注入一個(gè)基于它自己配置作用域的服務(wù)實(shí)體。所有的依賴注入是通過名字的; Grails
不支持類型注入。你也可以像下面這樣指定類型:
class AuthorService {
BookService bookService
}
不過, 存在副作用,即在開發(fā)模式下BookService
的改變會(huì)在加載時(shí)拋出一個(gè)錯(cuò)誤。
依賴注入與服務(wù)
你可以使用相同的技術(shù)在一個(gè)服務(wù)中注入另一個(gè)服務(wù)。如果說,你的AuthorService
需要一個(gè)
BookService
, 可以像下面這樣聲明 AuthorService
:
class AuthorService {
def bookService
}
依賴注入與Domain類
你甚至可以在domain類中注入服務(wù),這可以幫助開發(fā)出各種豐富的domain:
class Book {
…
def bookService
def buyBook() {
bookService.buyBook(this)
}
}
天蒼蒼,野茫茫,風(fēng)吹草底見牛羊