`

注意:Spring中使用Hibernate

阅读更多
1. 建议使用Hiberante进行Session和Transaction的管理
    将需要进行事务的多个原子DAO设置到Service里,在Service层进行事务控制和会话控制。
    设置一个基础的dao,即baseDAO 且继承之HibernateDaoSupport,而业务对象原子DAO,持有一个baseDAO的引用,通过setter注射设置到业务DAO中。
    多个原子DAO,通过setter注射到Service层。

2. 在显示层,一对多显示时,提示Session关闭的问题
    两个解决方法:
    1)在one-to-many设置lazy=false,即不延迟加载子对象,但这样可能会带来性能的问题,特别是父子关系模型是树状结构时。
    2)使用Hibernate提供的openSessiojnInView技术,即在视图层开启和关闭Session,在service层进行Transaction管理,这个较为简单,只需要设置一个filter即可,在web.xml中配置
<filter>
  <filter-name>hibernateFilter</filter-name>
  <filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>


需要注意的是,OpenSessionInViewFilter在调用过程中,需要引用Spring的ApplicationContext,而该对象实例必须是保存在ServletContext中的,因此需要在web.xml中处始化Spring的环境,增加配置如下:
<context-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>/WEB-INF/spring/applicationContext-hibernate.xml</param-value>
        </context-param>
     <servlet>
     <servlet-name>context</servlet-name>
             <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
             <load-on-startup>1</load-on-startup>
     </servlet>

其中

<servlet-name>context</servlet-name>
             <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
             <load-on-startup>1</load-on-startup>
     </servlet>


表示在启动时,进行Spring环境的处始化,因此以后如果要引用Spring中的某个bean实例

如下代码即可

org.springframework.context.ApplicationContext ctx = (org.springframework.context.ApplicationContext)application.getAttribute(org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);


然后调用ctx.getBean返回bean实例

Spring不只是AOP和IOC,更提供了大量的可重用技术,譬如request中的重设编码,Spring提供了相应的Filter:org.springframework.web.filter.CharacterEncodingFilter 通过直接配置,即可解决Web应用中POST的中文乱码问题,JMS的org.springframework.jms 包  JavaMail的org.springframework.mail包等等,更多的,请参看Spring的reference,

Spring能改善现有代码结构,大量的减少hard code,加快开发进度;
分享到:
评论

相关推荐

    SSH 配置实例: Spring 3.1 + Hibernate 4.2 + Struts 2.3

    3. `dom4j-1.6.1.jar` 是一个XML处理库,可能在Hibernate的配置文件解析中使用。 4. `cglib-2.2.jar` 是一个代码生成库,Spring的动态代理机制和Hibernate的子类生成可能需要用到。 5. `commons-lang3-3.1.jar` 提供...

    spring3.0+hibernate3.3+mysql8.0

    在本项目中,我们关注的是一个经典的Java Web开发技术栈:Spring 3.0、Hibernate 3.3以及MySQL 8.0的整合。这个组合是企业级应用中常见的技术选型,它们各自承担着不同的职责,共同构建了一个强大、灵活且可扩展的...

    Spring2 Hibernate3集成

    1. **事务管理**:Spring提供了一套声明式事务管理机制,可以方便地与Hibernate等持久层技术结合使用,实现细粒度的事务控制。 2. **对象关系映射**:Hibernate通过配置文件或注解的方式定义实体类与数据库表之间的...

    Myeclipse8.5下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3

    5. **配置Hibernate与Spring集成**:选择让Spring configuration file统一管理Hibernate的配置。 6. **指定SessionFactory配置**:选择继承自Spring配置文件(如WebRoot/WEB-INF/applicationContext.xml),...

    spring3+hibernate4+springmvc+druid连接池

    - 集成Hibernate:配置Hibernate的SessionFactory,使用Druid数据源。 - 配置Spring MVC:定义DispatcherServlet,配置视图解析器,以及模型-视图-适配器(MVC)相关组件。 - 使用AOP进行事务管理:Spring AOP...

    Spring集成的Hibernate配置二级缓存

    在企业级Java应用开发中,Spring和Hibernate是两个非常重要的框架。Spring作为一个全面的轻量级容器,负责管理对象的生命周期和依赖关系;而Hibernate作为持久化层的解决方案,简化了数据库操作。当涉及到高性能、大...

    Struts1.2+Spring1.2+Hibernate2.0搭建详解

    Struts1.2、Spring1.2和Hibernate2.0是经典...然而,需要注意的是,Struts1.2、Spring1.2和Hibernate2.0都已较为老旧,现在更推荐使用更新的版本,如Struts2、Spring Boot和Hibernate5,以获得更好的性能和最新的特性。

    spring4.0整合hibernate5.1.0.Final+mysql5

    在IT行业中,Spring框架、Hibernate ORM工具和MySQL数据库是开发企业级Java应用的常用技术栈。本教程将探讨如何在Spring 4.0版本中整合Hibernate 5.1.0.Final以及MySQL 5,创建一个完整的数据访问层。下面我们将深入...

    使用Struts+Spring+Hibernate整合开发例子

    注意spring的配置文件要放到WEB-INF下。 4. 添加hibernate框架包。 注意:在添加hibernate框架时,选择生成spring configuration file (applicationContext.xml)。 这里是使用spring配置文件管理hibernate。 先...

    spring-mvc hibernate配置

    Spring MVC和Hibernate是Java开发中两个非常重要的框架,它们分别用于构建Web应用程序的MVC(Model-View-Controller)架构和持久层管理。在实际项目中,将Spring MVC与Hibernate集成,可以创建出高效、可维护的Web...

    Spring mvc hibernate spring 开发所需jar包

    在Java企业级应用开发中,Spring、Spring MVC和Hibernate是三个非常重要的框架,它们共同构建了一个强大的后端开发体系。这个压缩包包含了这三个框架以及其他相关技术的jar包,确保了项目能够正常运行。 Spring框架...

    spring4+hibernate4+security4整合

    在IT行业中,Spring、Hibernate和Security是三个非常重要的框架,它们分别在不同的层面上服务于Java Web应用程序的开发。本文将详细解析"spring4+hibernate4+security4整合"的相关知识点,帮助开发者理解如何将这三...

    SpringAOP整合Hibernate并使用事务

    将Spring与Hibernate整合并使用事务管理,能进一步提升应用的稳定性和效率。下面我们将详细讲解如何进行Spring AOP整合Hibernate以及如何在其中使用事务。 1. **Spring AOP简介** 面向切面编程(AOP)是Spring框架...

    struts2 spring hibernate整合的简单登录代码

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...

    框架sprinigmvc4.1.6+spring4.1.6+hibernate4.1.7整合附带jar包

    - **Spring MVC和Hibernate整合**:在Spring MVC中,通过@Controller和@Repository注解,Spring可以自动管理Hibernate的数据访问层,简化了请求处理和数据持久化。 5. **导入和使用**:"直接导入myeclipse即可使用...

    Struts2+Spring4+Hibernate4整合

    Struts2、Spring4和Hibernate4是Java Web开发中的三个核心框架,它们分别负责MVC模式中的表现层、业务层和服务层。SSH(Struts2、Spring、Hibernate)的整合是构建高效、灵活的企业级应用的常用方式。下面将详细阐述...

    2017最新SSH整合案例(注意:本案例使用框架是Spring+Springmvc+Hibernate)

    在这个案例中,你将学习如何配置这三个框架,包括Spring的bean配置、SpringMVC的DispatcherServlet配置、以及Hibernate的数据源和实体映射。你可能还会涉及到事务管理的配置,因为Spring提供了一种声明式事务管理,...

    spring+hibernate框架搭建demo

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别专注于不同的领域,Spring作为一个全面的后端开发框架,而Hibernate则是一个对象关系映射(ORM)工具,主要用于数据库操作。本篇文章将深入探讨如何...

    spring hibernate 参考手册.rar

    《Spring与Hibernate集成详解》 在Java开发领域,Spring框架和Hibernate持久化框架是两个非常重要的组件,它们...这个"spring hibernate 参考手册"应该会详细阐述这些内容,帮助读者深入理解并运用到实际项目中去。

    先添加Spring后添加Hibernate

    2. 配置Hibernate:在Spring的配置文件中,定义Hibernate的SessionFactory Bean,包括数据源、Hibernate配置属性、实体扫描路径等。例如: ```xml &lt;bean id="dataSource" class="org.springframework.jdbc....

Global site tag (gtag.js) - Google Analytics