Grails中的Services

本文介绍Grails框架中的服务层概念及其重要性,并详细解释如何在Grails应用程序中实现事务管理。此外还介绍了Grails如何支持依赖注入,使得开发者能够更方便地组织和复用代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和web层一样,grails中也有service层的概念,grails团队不鼓励在controller中嵌入核心应用逻辑,因为在这样不利于代码的重用,也影响清晰的发分层,所以把业务逻辑都放在service层中,controller负责处理请求流程。

grails中可以对service进行事务划分,它声明service中的所有方法都是事务型的,缺省所有的service都进行了事务划分,要禁用这个,需显示的设置transational=false;

注意,依赖注入是声明式事务工作的唯一途径,如果自己用new操作符声明一个service则得不到事务支持。


1.Grails支持 "依赖注入通过规约". 换句话说,你可以使用一个属性名表示的一个服务的类名,自动把他们注入到 controllers, tag libraries,等等。

    class BookController {  
       def bookService  
       …  
    }  
在这种情况下,Spring 容器将自动注入一个基于它自己配置作用域的服务实体。所有的依赖注入是通过名字的; Grails 不支持类型注入。

你可以使用相同的技术在一个服务中注入另一个服务。

class AuthorService {  
    def bookService  
}  
你甚至可以在domain类中注入服务,这可以帮助开发出各种丰富的domain

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值