快速业务通道

Apache Geronimo和Spring框架,第1部分: 开发方法学 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
t;username" value="XXXX"/> <property name="password" value="YYYY"/> </bean> <bean id="mySessionFactory"   class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <property name="mappingResources"> <list> <value>product.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> net.sf.hibernate.dialect.MySQLDialect  </prop> </props> </property> </bean> ... </beans>

DAO 实现支持

请看一个演示基本模板编程模型的示例。应用程序对象的实现只需要有一个 Hibernate SessionFactory,它可以通过 Spring 应用程序上下文的一个简单 bean 引用来提供。清单 5 显示了在 Spring 应用程序上下文中定义一个 DAO,其中引用了前面定义的 SessionFactory。

清单 5. 在 Spring 应用程序上下文中定义 DAO

<beans> ... <bean id="employeeDao" class="emp.EmployeeDaoImpl"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> </beans>

Apache Geronimo和Spring框架,第1部分: 开发方法学(7)

时间:2011-10-13 IBM Arun Chhatpar

清单 6 显示了 DAO 方法实现的一个示例

清单 6. DAO 方法实现的示例

public class EmployeeDaoImpl implements EmployeeDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Collection loadEmployeesByDepartment(final String department)   throws DataAccessException { HibernateTemplate ht = new HibernateTemplate(this.sessionFactory); return (Collection) ht.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query query = session.createQuery( "from test.Employee employee where employee.department=?"); query.setString(0, department); return query.list(); } }); } }

对于任何 Hibernate 数据访问,都可以有效地采用回调(函数)实现。HibernateTemplate 确保会话 可以正确地打开和关闭,并自动地参与事务。模板实例具有线程安全性和可重用性,所以在使用它的类中 可以作为实例变量保存。

事务策略

Spring 事务抽象的关键在于事务策略的概念。可以通过 org.springframework.transaction.PlatformTransactionManager 接口捕获它。清单 7 显示了使用事务 策略的一个简单示例。

清单 7. 演示 PlatformTransactionManager 用法的示例

public interface PlatformTransactionManager { TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException; void commit(TransactionStatus status) throws TransactionException; void rollback(TransactionStatus status) throws TransactionException; }

在本系列教程的第 4 部分,将学习关于不同事务策略的更多内容。

Spring Web Flow (SWF)

Spring Web Flow 模块提供了几个面向 Web 的集成特性。它通过声明帮助定义了 Web 应用程序的流 (flow)。同

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号