`
freespace
  • 浏览: 179568 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在grails加入spring事务支持

阅读更多
grails中有个Service支持事务操作,但你如果想用Spring的事务,可以在grails-app/spring/resources.xml中加入spring的事务声明,如下所示:
resource.xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:aop="http://www.springframework.org/schema/aop"  
  5.        xmlns:tx="http://www.springframework.org/schema/tx"  
  6.        xsi:schemaLocation="  
  7.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
  8.        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd  
  9.        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">  
  10. <!-- 这是我们将要配置并使它具有事务性的Service对象 -->  
  11.   
  12.   <bean id="userImpl" class="transaction.UserImpl">  
  13.       <property name="sessionFactory" ref="sessionFactory"/>  
  14.   </bean>  
  15.   <!-- the transactional advice (i.e. what 'happens'; see the <aop:advisor/> bean below) -->  
  16.   
  17.   <tx:advice id="txAdvice" transaction-manager="txManager">  
  18.     <!-- the transactional semantics... -->  
  19.   
  20.     <tx:attributes>  
  21.       <!-- all methods starting with 'get' are read-only -->  
  22.   
  23.       <!-- other methods use the default transaction settings (see below) -->  
  24.   
  25.       <tx:method name="*"/>  
  26.     </tx:attributes>  
  27.   </tx:advice>  
  28.   
  29.   <!-- ensure that the above transactional advice runs for any execution of an operation defined by the FooService interface -->  
  30.   
  31.   <aop:config proxy-target-class="true">  
  32.     <aop:pointcut id="fooServiceOperation" expression="execution(* transaction.*.*(..))"/>  
  33.     <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>  
  34.   </aop:config>  
  35.   
  36.   <!-- don't forget the DataSource -->  
  37.   
  38.   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  39.     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
  40.     <property name="url" value="jdbc:mysql://localhost:3306/OA"/>  
  41.     <property name="username" value="root"/>  
  42.     <property name="password" value=""/>  
  43.   </bean>  
  44.   
  45.   
  46.   <!-- similarly, don't forget the (particular) PlatformTransactionManager -->  
  47.   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  48.     <property name="dataSource" ref="dataSource"/>  
  49.   
  50.   </bean>  
  51.   
  52.   <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  53.     <property name="sessionFactory" ref="sessionFactory"/>  
  54.   </bean>  
  55.   
  56.   <!-- other <bean/> definitions here -->  
  57.   
  58.   
  59. </beans>  
UserImpl.groovy 代码
 
  1. package transaction  
  2.   
  3. import com.jr.nj.hibernate.Event  
  4. import org.hibernate.SessionFactory  
  5. import org.hibernate.Session  
  6. import org.springframework.orm.hibernate3.HibernateTemplate  
  7.   
  8.   
  9. class UserImpl {  
  10.         def sessionFactory  
  11.     def save(params) throws Exception {  
  12.             def event =new Event()  
  13.             event.setDate new Date()  
  14.             event.setTitle 'aaa'  
  15.             HibernateTemplate ht = new HibernateTemplate(sessionFactory);  
  16.             ht.save event  
  17.             def event2 =new Event()  
  18.             event2.setDate new Date()  
  19.             event2.setTitle 'bbb'  
  20.             ht.save event2  
  21.             throw new RuntimeException("事务测试")  
  22.         }  
  23. }  

其中,Event可以是java定义的持久类或者groovy定义的domain。
分享到:
评论

相关推荐

    Grails + Spring Security 权限控制

    本文将深入探讨如何在Grails框架中集成Spring Security,实现高效且灵活的权限管理。 Grails是一个基于Groovy语言的全栈式、敏捷的Web应用框架,它简化了Java开发流程,提供了丰富的插件生态系统。Spring Security...

    grails-boot:Grails 与 Spring Boot 的集成

    在现代Java开发领域,Grails和Spring Boot都是非常流行的框架。Grails作为Groovy语言构建的Web开发框架,以其强大的生产力和灵活的特性受到开发者的喜爱,而Spring Boot则凭借其快速启动、自动化配置等优势,成为...

    grails-spring-websocket

    该插件旨在使Spring 4.0中引入的websocket支持可用于Grails应用程序。 您也可以使用相应的Spring docs / apis / samples作为参考。 在本自述文件中多次提到了这一点,因为其中详细解释了所有内容。 Grails版本...

    grails3-spring-security-demo

    Grails 3Spring安全演示环境设定将您的Grails环境设置为使用Grails3。当前,此演示是使用Grails 3.0.6构建的。 克隆或分叉项目初始步骤这些初始步骤已经针对GitHub上的代码完成。 我只是想说明为使代码达到这个起点...

    grails ckeditor 0.4修改支持flv插入

    "grails" - Grails是一个基于Groovy语言的开源Web应用框架,它构建在Spring Boot之上,用于快速开发企业级应用。 "ckeditor" - CKEditor是一款流行的开源富文本编辑器,常用于网页上的内容编辑,提供丰富的文本格式...

    Grails Grails Grails

    3. **插件系统**:Grails 插件是一组可重用的功能模块,可以快速增强应用程序的功能,如Spring Security、Asset Pipeline等。 4. **命令行工具**:Grails 提供强大的命令行工具,支持创建项目、运行应用、生成代码...

    grails-spring-security-rest:Grails插件使用Spring Security实现基于令牌的RESTful身份验证

    用于Grails的Spring Security REST Grails插件使用Spring Security实现基于令牌的无状态RESTful身份验证。 由赞助和支持 说明文件: 。 。使用此插件的公司熊猫熊猫Zana Technologies GmbH 您是否正在使用此插件,并...

    grails中文入门简介

    在服务层,Grails支持声明式事务,并允许通过依赖注入将服务集成到应用程序中。服务的作用域和生命周期是Grails服务管理的一部分。Grails还支持使用Java服务,这允许Java开发者可以更容易地迁移到Grails。 测试是...

    grails-spring-security-core:Grails Spring安全核心插件

    Grails Spring安全核心插件 请参阅以获取更多信息。 分支机构 master与Grails 4.x兼容 3.3.x使用Grails 3.3.x兼容 3.2.x使用Grails 3.2.x中兼容

    使用GORM构建Spring Boot应用程序 Grails指南_ Grails框架.pdf

    在本教程中,我们将探讨如何使用GORM(Grails Object-Relational Mapping)构建Spring Boot应用程序。GORM是Grails框架的核心部分,它为开发者提供了简单、强大的数据持久化功能,支持Hibernate和MongoDB等数据库。...

    grails1.3.9

    这个版本,1.3.9,是在Grails框架历史中的一个重要里程碑,它集成了Groovy编程语言,Spring框架,Hibernate持久化库,以及其他标准的Java技术,为开发者提供了一站式的解决方案,简化了复杂的应用程序开发过程。...

    Grails 教程

    基于Spring事务抽象概念,实现事务服务层 借助于功能强大的Groovy动态语言和领域特定语言(Domain Specific Language,DSL),以上那些特性变得非常易用。 这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序...

    Grails1.1中文文档

    与那些框架不同的是,Grails是构建在现有的像Spring、Hibernate这样的Java技术之上。 Grails是个一栈式开发框架,它尝试通过核心技术和插件技术来解决许多Web开发难题。Grails包含了如下内容: 由 Hibernate ...

    grails开发

    例如,`spring-security-core`插件用于安全控制,`grails-spring-websocket`插件实现WebSocket支持等。 6. **命令行工具** Grails的命令行工具提供了丰富的命令,如创建新项目、生成领域类、运行测试等,极大提高...

    grails快速开发web

    - **Grails 社区的发展**:随着越来越多的开发者加入到 Grails 的开发中,其社区也在不断壮大。 综上所述,Grails 不仅提供了快速开发 Web 应用程序的有效手段,而且还为开发者构建了一个充满活力的社区环境。无论...

    grails-2.4.2开发包

    Grails构建在Spring框架之上,利用Spring的强大功能,如依赖注入(DI)、面向切面编程(AOP)以及事务管理。这使得Grails应用具备了企业级的稳定性和可扩展性,同时降低了系统的复杂度。 3. **Hibernate数据持久化...

    grails-spring-security-ui

    本文将深入探讨"Grails Spring Security UI"这一主题,旨在帮助开发者理解如何在Grails应用中集成和定制Spring Security的用户界面。 首先,"Grails Spring Security UI"是Grails社区为Spring Security提供的一套...

    Grails-Springsecurity-username-email-login:此示例是关于如何配置 grails spring 安全插件以通过电子邮件或用户名登录的项目

    Grails-Springsecurity-username-email-login 此种子用于在您的应用程序中配置 spring 安全性并启用使用用户名或电子邮件登录 vai Grails spring 安全性插件仅支持通过用户名登录。 如果您需要通过用户名或密码启用...

    grails-用户手册

    Grails使用Gradle作为构建工具,提供了`grails war` 命令生成可部署的WAR文件,方便在各种Java应用服务器上部署。 九、测试 Grails内置了测试框架,支持单元测试、集成测试和功能测试。通过`test-app` 命令,可以...

    grails ajax

    Grails 是一个基于Groovy语言的开源Web应用框架,它构建在Spring Boot之上,提供了丰富的功能和便捷的开发体验。Ajax(Asynchronous JavaScript and XML)技术则是Web开发中用于实现页面无刷新、局部更新的一种重要...

Global site tag (gtag.js) - Google Analytics