asdtiang的博客 感谢blogjava提供的博客交流平台

grails acegi使用----注册时发送email

Posted on 2010-04-20 18:29 asdtiang 阅读(293) 评论(0)  编辑  收藏 所属分类: grails study
 在这里记一下,注册时发送出email就行了,至于如果运行配置和运行acegi在官网上就能查到。
    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"]是关键,spring的email默认不进行认证的,如果只加"mail.smtp.auth":"true",也不行,问了下网友,加上后面的属性就行了。
在这里也学习到grails的service归约规则:
8. The Service Layer

Grails服务的一个重要方面是,有能力利用Spring 框架的依赖注入能力。 Grails支持 "依赖注入通过规约". 换句话说,你可以使用一个属性名表示的一个服务的类名,自动把他们注入到 controllers, tag libraries,等等。

作为示例,给定的服务名为BookService, 如果你像下面这样在controller中放置一个名为bookService 的属性:

class BookController {
def bookService
…
}

在这种情况下,Spring 容器将自动注入一个基于它自己配置作用域的服务实体。所有的依赖注入是通过名字的; Grails 不支持类型注入。你也可以像下面这样指定类型:

class AuthorService {
BookService bookService
}

不过, 存在副作用,即在开发模式下BookService的改变会在加载时抛出一个错误。

依赖注入与服务

你可以使用相同的技术在一个服务中注入另一个服务。如果说,你的AuthorService需要一个 BookService, 可以像下面这样声明 AuthorService:

class AuthorService {
def bookService
}

依赖注入与Domain类

你甚至可以在domain类中注入服务,这可以帮助开发出各种丰富的domain:

class Book {
…
def bookService
def buyBook() {
bookService.buyBook(this)
}
}



天苍苍,野茫茫,风吹草底见牛羊

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 80, comments - 24, trackbacks - 0, articles - 32

Copyright © asdtiang

asdtiang的博客 PaidMailz
点击广告网赚A(每天4个广告,每个0.0025美元,一个搜索广告0.03美元)