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

快速构建Spring+hibernate WEB应用(三)

阅读更多
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 博客系统

    这个"jsp+Spring+hibernate"博客系统展示了如何利用现代Java技术栈构建一个功能完善的Web应用。通过结合JSP的视图呈现、Spring的控制层管理和Hibernate的数据持久化,开发者能够快速、高效地开发出具有复杂业务逻辑...

    gwt+spring+hibernate

    综上所述,"gwt+spring+hibernate"的整合旨在展示如何在Java Web应用中同时利用GWT的富客户端特性、Spring的架构优势和Hibernate的数据持久化能力。通过这样的整合,开发者可以构建出用户体验良好、业务逻辑清晰且...

    spring mvc + spring + hibernate 全注解整合开发视频教程 11

    Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供了丰富的特性,如请求映射、数据绑定、异常处理和视图解析等。使用Spring MVC,开发者可以通过注解来简化配置,...

    springmvc+spring+hibernate

    Spring MVC、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大而灵活的后端架构。Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向...

    idea工具创建的Spring+SpringMVC+Hibernate+maven项目

    标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、...对于学习和理解Java Web开发,特别是Spring、Struts和Hibernate的集成应用,这是一个很好的实践案例。

    spring mvc + spring + hibernate 全注解整合开发视频教程 04

    在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...

    Spring+Hibernate+MySql的应用实例

    同时,Spring MVC是Spring提供的一个用于构建Web应用程序的模型-视图-控制器(MVC)架构,它简化了请求处理和视图渲染。 **Hibernate ORM**:Hibernate简化了与数据库的交互,允许开发者用面向对象的方式来操作数据...

    struts+spring+hibernate实现图书修改和删除

    在IT行业中,SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。本项目通过SSH框架实现了图书管理系统的图书修改和删除功能,下面将详细介绍这三个核心组件...

    JSF+Spring+Hibernate小例子

    在Java Web开发中,JSF(JavaServer Faces)、Spring和Hibernate是三个常用的技术栈,它们分别负责视图层、业务逻辑层和服务数据持久化层。这个"JSF+Spring+Hibernate小例子"为我们提供了一个整合这三者的基础应用,...

    Struts+Spring+Hibernate开发实例.pdf

    总的来说,文档中提及的知识点包含了Struts、Spring和Hibernate三个框架的核心概念和实际应用。开发者需要对这些框架有深入的了解,并能够将它们整合在一起,设计出结构良好的Web应用。由于文档内容是通过OCR扫描的...

    用Maven搭建Spring+Spring MVC+Hibernate框架

    在IT行业中,构建大型、模块化的Java应用时,通常会采用一些成熟的框架组合,例如Spring、Spring MVC和Hibernate。这些框架协同工作,可以提供强大的后端功能,包括依赖注入、模型-视图-控制器(MVC)架构以及对象...

    Flex+spring+hibernate示例

    Flex+Spring+Hibernate示例是一种常见的企业级应用架构,它结合了Adobe Flex前端技术、Spring后端框架和Hibernate持久层框架,以构建高效、灵活且易于维护的Web应用程序。在这个示例中,开发者可能已经展示了如何...

    Spring+SpringMVC+Hibernate框架集成详解

    在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate 框架集成,以便构建一个完整的 Web 应用程序。我们将介绍如何配置 Spring 框架,如何配置 SpringMVC 框架,如何配置 Hibernate 框架,並且如何将...

    struts+spring+hibernate(mysql)用户登录及文件上传

    Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们结合使用可以构建高效、模块化的应用程序,特别是对于处理用户登录和文件上传等常见功能。在这个项目中,"struts+spring+hibernate(mysql)用户登录及...

    使用Struts + Spring + Hibernate完成用户登陆笔记

    * Struts是一个基于MVC模式的Web应用程序框架,用于构建Java Web应用程序。 * Struts框架的核心组件包括Action、FormBean、ActionForm、ActionMapping等。 * Struts框架提供了一个灵活的框架来处理HTTP请求和响应。 ...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序的前端控制器。它提供了模型-视图-控制器(MVC)架构模式的实现,使得业务逻辑与用户界面分离,提高了代码的可测试性和可维护性。Spring MVC通过注解如@...

    Struts2+Spring+Hibernate+Jsp+Mysql5 项目申报系统.zip

    Struts2+Spring+Hibernate+JSP+MySQL5是一个经典的Java Web开发框架组合,也被称为SSH框架。这个项目申报系统是基于这些技术构建的,它提供了高效、灵活且可扩展的后端架构来处理复杂的业务逻辑和数据管理。以下是...

    jsf+spring+hibernate

    JSF (JavaServer Faces)、Spring 和 Hibernate 是 Java 开发中的三大核心技术,常用于构建企业级的 Web 应用程序。它们各自扮演着不同的角色,共同构建了一个强大的后端架构。 1. **JSF(JavaServer Faces)**: ...

    纯净的spring+hibernate+mysql

    总之,"纯净的Spring+Hibernate+MySQL"项目展示了如何结合这三个关键组件来构建一个功能完善的Web应用,为初学者提供了一个很好的学习平台,同时也可作为复杂系统的基础结构。通过深入理解和实践,开发者可以掌握Web...

Global site tag (gtag.js) - Google Analytics