这两天闲着无聊就改动以前自己写的项目,以前的项目是s2sh3的,加上ehcache,oscache,也算是不比较完整点的了!
这次准备换成hibernate4了,看看的多租户模式。
原以为会很简单,没想到还真费周折。
关键就在sessionFactory,HibernateDaoSupport,HibernateTemplete这里卡到了!
H4已经抛弃了DaoSupport和templete,所以以前的代码业务层就不能直接引用了,需要自己去手动修改了! 这里先看看spring的配置文件吧!
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"> </property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dibang"> </property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.current_session_context_class">
org.springframework.orm.hibernate4.SpringSessionContext
</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.virusyang.*</value>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="dataSource" ref="dataSource"></property>
</bean>
这里的sessionFactory里面的类一定要是org.springframework.orm.hibernate4.LocalSessionFactoryBean,还有就是我使用hibernate.cfg.xml放到sessionFactory里面是不管用的,因为它会去找org.hibernate.cache.cachePrivoder这个类,但是这个类在H4中已经被废弃了! 所以这里推荐使用dataSource,也可以在sessionFactory中自己配置,但是如果不使用dataSource的话,等到自己需要配置transactionManager的时候就会出错,因为事务的管理必须使用dataSource。
然后就是注入的Dao层了,在Dao层里面要显示的声明sessionFactory了,即在类或者接口中要有private SessionFactory sessionFactory的定义,然后需要实现他们的get方法。
本以为这些做完之后就OK了,然后就在类中使用sessionFactory.getCurrentSession()方法了,但是竟然出现了NO SESSION DEFIANE这样的错误,没办法,只能改成sessionFactory.openSession()这个方法了,看了文档,说的是hibernate可以自己处理了,不用spring来管理了,所以getCurrentSession()不能使用了(以前的是spring来生成的),需要在web.xml中加入org.springframework.orm.hibernate4.support.OpenSessionInViewInterceptor 这个filter, 然后直接使用getCurrentSession()了,也可以在service类中加入@transactional来进行注释。
就这样,把所有的都替换过之后就OK了!
感觉我那里说错了或者不明白的可以留言。。。
分享到:
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...
书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
在这个整合实例中,开发者还需要关注如何配置各个框架的XML配置文件(如Hibernate的hibernate.cfg.xml,Spring的applicationContext.xml,Struts2的struts.xml等),以确保它们能正确地相互协作。此外,错误处理、...
Struts2、Spring4和Hibernate4是Java Web开发中的三大框架,它们的整合是构建高效、灵活的企业级应用的常用方式。在这个SSH(Struts2-Spring-Hibernate)整合的DEMO中,我们主要探讨如何将这三个框架无缝连接,实现...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而将这三者整合在一起可以构建高效、灵活的企业级应用。Struts2作为MVC(Model-View-Controller)框架,负责处理用户请求...
【标题】:“Hibernate、Struts2与Spring的整合项目” 【描述】:“这是一个将Hibernate、Struts2和Spring三大框架集成在一起的项目示例。它展示了如何在实际开发中有效地结合这三个强大的Java技术,实现数据持久层...
SSH4整合是指将Spring4、Hibernate4和Struts2集成在一起,以实现一个高效、灵活且可维护的Web应用程序。下面我们将深入探讨这三个框架的核心功能及其整合过程。 **Spring框架** Spring是Java企业级应用的基石,它...
在一个典型的"hibernate+spring+struts"整合项目中,它们的角色如下: - **Struts** 作为前端控制器,接收用户请求,根据配置决定调用哪个业务逻辑方法。 - **Spring** 用于管理依赖注入(DI),包括Hibernate的...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
SSH(Struts2+Spring+Hibernate)框架整合是Java Web开发中常见的一种技术栈,能有效地提高开发效率和代码质量。 Struts2作为MVC框架,主要负责处理HTTP请求,控制应用程序的流程,提供视图和控制器的分离。它的...
Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合使用能够构建出高效、可维护性高的Web应用程序。本篇将深入剖析这三者如何协同工作,并提供实际范例应用。 首先,Struts2作为MVC(模型-视图...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2专注于MVC(Model-View-Controller)架构的实现,提供强大的动作控制和页面展示;Hibernate作为对象关系映射(ORM)工具,...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(Model-View-Controller)架构的实现,提供控制层的支持;Hibernate是对象关系映射(ORM)工具,负责数据持久...
Struts2、Spring3和Hibernate4是Java Web开发中三个非常重要的开源框架,它们分别负责MVC模式中的表现层、业务层和数据访问层。这三个框架的整合,通常被称为SSH整合,可以提供一个高效、灵活且功能强大的企业级应用...
在整合过程中,开发者需要注意配置文件的正确设置,包括Struts2的struts.xml、Hibernate的hibernate.cfg.xml以及Spring的applicationContext.xml等。还需要确保各框架之间的依赖注入正确无误,例如,Spring需要知道...
"struts2-hibernate3-spring整合需要的全部jar包"正是为了解决这个问题,它包含了所有必要的库文件,使得开发者可以直接引入而无需担心版本冲突。 以下是这个整合所需的一些关键jar包及其作用: 1. **Struts2框架*...
Struts2、Spring4和Hibernate是Java开发中的三大框架,它们在构建企业级Web应用程序时起着核心作用。本教程将深入探讨这三个框架如何协同工作,以实现高效、灵活和可扩展的电子商务平台。 首先,Struts2是一个基于...
在SSH整合中,Spring会管理Struts2的动作类和Hibernate的数据访问对象(DAO),并将它们连接起来。 其次,**Struts2框架**是MVC架构的一部分,主要处理用户的请求并控制应用程序的流程。它提供了一种声明式的方式来...