Spring+hibernate
Spring几乎对hibernate提供了完美的支持。
要在刚创建的Spring工程中加入Hibernate得支持,索要做的工作仅仅是声明一个SessionFactory.用它代替了原来的
..代码胜千言!
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler" />
<property name="mappingDirectoryLocations">
<list>
<value>/WEB-INF/classes/mtn/gfkd/spring/model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.show_sql">
${hibernate.show_sql}
</prop>
<prop key="hibernate.use_sql_comments">
${hibernate.use_sql_comments}
</prop>
<prop key="hibernate.jdbc.fetch_size">
${hibernate.jdbc.fetch_size}
</prop>
<prop key="hibernate.jdbc.batch_size">
${hibernate.jdbc.batch_size}
</prop>
<!-- prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>-->
<prop key="hibernate.generate_statistics">
${hibernate.generate_statistics}
</prop>
<!-- 使用默认的二级缓存策略之一 :Ehcache -->
<prop key="hibernate.cache.use_query_cache">
${hibernate.cache.use_query_cache}
</prop>
<prop key="hibernate.cache.provider_class">
${hibernate.cache.provider_class}
</prop>
</props>
</property>
<property name="eventListeners">
<map>
<entry key="merge">
<bean
class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
</entry>
</map>
</property>
<!--
<property name="jtaTransactionManager" ref="transactionManager"></property>
-->
</bean>
<!-- EhCache 管理器,同时指明缓存策略的资源文件-->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation">
<value>classpath:configure/ehcache/ehcache.xml</value>
</property>
</bean>
察看上述的配置文件,可以看出,hibernate的使用被Spring 基本完全接管,我们所使用的SessionFactory只需按需注入即可J
接上上述的配置不完全的地方
可以看到,引用的bean配置如下:
<beanid="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor"/>
</property>
</bean>
Oracle的Clob,Blob字段的处理类,使其可以与普通字段一样进行处理。
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/pygl</value>
</property>
</bean>
数据源的配置。
当然:我们不能忘记MyEclipse的hibernate生成工具,将其生成并与SessionFactory的配置匹配,就万事OK拉!
通过以上步骤:
我们发现,现在我们的应用已经拥有了Spring框架和Hibernate工具的支持!
通过SessionFactory的注入,我们就可以利用Hibernate完成业务功能了,通过前面提到的Controllor对业务功能类的引用,一个完整的WEB应用就搭建成功了!!
Spring+hibernate 事务
有了Spring,hibernate的事务就有了最优美的解决方案,利用AOP将hibernate 事务处理自动包装到方法上,从而使方法里再也不要为事务伤神了。
当然,当事务为一长串的方法连接起来的,怎么办呢?
解决方案:business层,专门完成真正业务逻辑,在一个方法里将刚才的情况封装成一个函数,利用AOP进行事务管理。(本人愚见)
说到方便,当然还是免除所有代码来的最实际了,看事务配置文件如下:
<beanid="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
</bean>
声明事务管理器
<bean id="abstrcttxproxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
lazy-init="true">
<property name="transactionManager" ref="transactionManager" />
<property name="proxyTargetClass" value="true" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
设置一个事物管理的通用父接口,让其他的需要事务管理又形式一样的声明直接继承,好处是减少了各个节点的事务声明。
<bean id="TUserDAO" parent="abstrcttxproxy">
<property name="target">
<bean class="gfkd.mtn.spring.user.dao.impl.TUserDAOImpl"></bean>
</property>
</bean>
业务逻辑DAO直接继承事务。
写在最后的话,我的这篇文章都是讲的片段,可能没有形成一个工程完整的全貌,却包含了一个起步工程几乎所有的细节(当然除了安全控制),里面当然还是有一些小细节的问题,不过我想大方向正确,成功就不会远了吧!
分享到:
相关推荐
这个"jsp+Spring+hibernate"博客系统展示了如何利用现代Java技术栈构建一个功能完善的Web应用。通过结合JSP的视图呈现、Spring的控制层管理和Hibernate的数据持久化,开发者能够快速、高效地开发出具有复杂业务逻辑...
综上所述,"gwt+spring+hibernate"的整合旨在展示如何在Java Web应用中同时利用GWT的富客户端特性、Spring的架构优势和Hibernate的数据持久化能力。通过这样的整合,开发者可以构建出用户体验良好、业务逻辑清晰且...
Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了丰富的特性,如请求映射、数据绑定、异常处理和视图解析等。使用Spring MVC,开发者可以通过注解来简化配置,...
Spring MVC、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大而灵活的后端架构。Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向...
标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...
《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、...对于学习和理解Java Web开发,特别是Spring、Struts和Hibernate的集成应用,这是一个很好的实践案例。
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...
同时,Spring MVC是Spring提供的一个用于构建Web应用程序的模型-视图-控制器(MVC)架构,它简化了请求处理和视图渲染。 **Hibernate ORM**:Hibernate简化了与数据库的交互,允许开发者用面向对象的方式来操作数据...
在IT行业中,SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。本项目通过SSH框架实现了图书管理系统的图书修改和删除功能,下面将详细介绍这三个核心组件...
在Java Web开发中,JSF(JavaServer Faces)、Spring和Hibernate是三个常用的技术栈,它们分别负责视图层、业务逻辑层和服务数据持久化层。这个"JSF+Spring+Hibernate小例子"为我们提供了一个整合这三者的基础应用,...
总的来说,文档中提及的知识点包含了Struts、Spring和Hibernate三个框架的核心概念和实际应用。开发者需要对这些框架有深入的了解,并能够将它们整合在一起,设计出结构良好的Web应用。由于文档内容是通过OCR扫描的...
在IT行业中,构建大型、模块化的Java应用时,通常会采用一些成熟的框架组合,例如Spring、Spring MVC和Hibernate。这些框架协同工作,可以提供强大的后端功能,包括依赖注入、模型-视图-控制器(MVC)架构以及对象...
Flex+Spring+Hibernate示例是一种常见的企业级应用架构,它结合了Adobe Flex前端技术、Spring后端框架和Hibernate持久层框架,以构建高效、灵活且易于维护的Web应用程序。在这个示例中,开发者可能已经展示了如何...
在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate 框架集成,以便构建一个完整的 Web 应用程序。我们将介绍如何配置 Spring 框架,如何配置 SpringMVC 框架,如何配置 Hibernate 框架,並且如何将...
Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们结合使用可以构建高效、模块化的应用程序,特别是对于处理用户登录和文件上传等常见功能。在这个项目中,"struts+spring+hibernate(mysql)用户登录及...
* Struts是一个基于MVC模式的Web应用程序框架,用于构建Java Web应用程序。 * Struts框架的核心组件包括Action、FormBean、ActionForm、ActionMapping等。 * Struts框架提供了一个灵活的框架来处理HTTP请求和响应。 ...
Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序的前端控制器。它提供了模型-视图-控制器(MVC)架构模式的实现,使得业务逻辑与用户界面分离,提高了代码的可测试性和可维护性。Spring MVC通过注解如@...
Struts2+Spring+Hibernate+JSP+MySQL5是一个经典的Java Web开发框架组合,也被称为SSH框架。这个项目申报系统是基于这些技术构建的,它提供了高效、灵活且可扩展的后端架构来处理复杂的业务逻辑和数据管理。以下是...
JSF (JavaServer Faces)、Spring 和 Hibernate 是 Java 开发中的三大核心技术,常用于构建企业级的 Web 应用程序。它们各自扮演着不同的角色,共同构建了一个强大的后端架构。 1. **JSF(JavaServer Faces)**: ...
总之,"纯净的Spring+Hibernate+MySQL"项目展示了如何结合这三个关键组件来构建一个功能完善的Web应用,为初学者提供了一个很好的学习平台,同时也可作为复杂系统的基础结构。通过深入理解和实践,开发者可以掌握Web...