`
wiley
  • 浏览: 253965 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring+hibernate之applicationContext.xml配置

阅读更多
百事通信息网

最近一段时间潜心自学struts,spring,hibernate框架,写了一些独立框架的例子还算顺利,今天试着将spring与hibernate整合,遇到一些问题,故写此文。
主要功能:完成数据库表的查、增、删、改操作。
问题描述:查询功能一切正常,但是在增、删、改操作中发现,数据库表中数据没有改变,查看控制台日志也没有任何异常发现,纳闷了好久,仔查检查日志,发现在新增操作中表id有在自增,由此确定是问题出在事务没有提交。将事务配置上去后出现如下报错:java.lang.ClassCastException: $Proxy1,百度上搜到一文,在业务类如果实现了接口,得增加如下代码
<property name="proxyTargetClass">
   <value>true</value>
</property>
果然如此,再次运行,成功了!
以下是我applicationContext.xml的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="mySessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation">
   <value>classpath:hibernate.cfg.xml</value>
  </property>
 </bean>
 <bean id="myTransactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref bean="mySessionFactory" />
  </property>
 </bean>
 <bean id="myBaseTransactionProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  abstract="true">
  <property name="transactionManager" ref="myTransactionManager" />
  <property name="transactionAttributes">
   <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    <!-- 
     <prop key="insert*">PROPAGATION_REQUIRED</prop>
     <prop key="save">PROPAGATION_REQUIRED</prop>
     <prop key="update*">PROPAGATION_REQUIRED</prop>
     <prop key="edit*">PROPAGATION_REQUIRED</prop>
     <prop key="del*">PROPAGATION_REQUIRED</prop>
     <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="disPlay*">PROPAGATION_REQUIRES_NEW</prop>
    -->
   </props>
  </property>
 </bean>
 <bean id="UsersDAO" class="com.notepad.dao.UsersDAO">
  <property name="sessionFactory">
   <ref bean="mySessionFactory" />
  </property>
 </bean>
 <bean id="userTarget" class="com.notepad.bussies.UserService">
  <property name="usersDao">
   <ref local="UsersDAO" />
  </property>
 </bean>
 <bean id="UserService" parent="myBaseTransactionProxy">
  <property name="proxyTargetClass">
   <value>true</value>
  </property>
  <property name="target">
   <ref local="userTarget" />
  </property>
 </bean>
</beans>
分享到:
评论
7 楼 lonelypark 2008-12-03  
我也遇到这个问题,谢谢了
6 楼 zookie 2008-10-28  
呵呵呵,不错
5 楼 111111 2008-08-03  
datasource ne???
4 楼 111111 2008-08-03  
datasource ne???
3 楼 volking 2008-02-25  
我运行怎么有警告
16:07:43,671     WARN   Cglib2AopProxy:250   -   Unable   to   proxy   method   [public   final   org.hibernate.SessionFactory   org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSessionFactory()]   because   it   is   final:   All   calls   to   this   method   via   a   proxy   will   be   routed   directly   to   the   proxy.
16:07:43,671     WARN   Cglib2AopProxy:250   -   Unable   to   proxy   method   [public   final   org.springframework.orm.hibernate3.HibernateTemplate   org.springframework.orm.hibernate3.support.HibernateDaoSupport.getHibernateTemplate()]   because   it   is   final:   All   calls   to   this   method   via   a   proxy   will   be   routed   directly   to   the   proxy.
16:07:43,671     WARN   Cglib2AopProxy:250   -   Unable   to   proxy   method   [public   final   void   org.springframework.orm.hibernate3.support.HibernateDaoSupport.setHibernateTemplate(org.springframework.orm.hibernate3.HibernateTemplate)]   because   it   is   final:   All   calls   to   this   method   via   a   proxy   will   be   routed   directly   to   the   proxy.
16:07:43,671     WARN   Cglib2AopProxy:250   -   Unable   to   proxy   method   [public   final   void   org.springframework.orm.hibernate3.support.HibernateDaoSupport.setSessionFactory(org.hibernate.SessionFactory)]   because   it   is   final:   All   calls   to   this   method   via   a   proxy   will   be   routed   directly   to   the   proxy.
16:07:43,671     WARN   Cglib2AopProxy:250   -   Unable   to   proxy   method   [public   final   void   org.springframework.dao.support.DaoSupport.afterPropertiesSet()   throws   java.lang.IllegalArgumentException,org.springframework.beans.factory.BeanInitializationException]   because   it   is   final:   All   calls   to   this   method   via   a   proxy   will   be   routed   directly   to   the   proxy.
2 楼 kaki 2007-09-07  
十分感谢!!
1 楼 daiing 2007-04-13  
果然是这样,找了很久终于找到问题了

相关推荐

    applicationContext.xml 详细配置

    ApplicationContext.xml 是 Spring 框架中用于配置应用程序的核心配置文件。通过该文件,可以定义 Bean、数据源、Session 工厂、 Hibernate 配置等相关信息,从而实现应用程序的自动装配和依赖注入。 一、XML 声明...

    JSF2.0+Spring+Hibernate实例代码.zip.zip

    1. **源代码**:包括JSF的页面(*.xhtml)、Spring的配置文件(如applicationContext.xml)、Hibernate的映射文件(*.hbm.xml)和实体类(*.java)。 2. **构建脚本**:如Maven或Gradle的配置文件,用于项目的构建和...

    JavaEE spring和Hibernate整合(没有hibernate.cfg.xml)

    - 在Spring的配置文件(如`applicationContext.xml`)中,创建`LocalSessionFactoryBean` bean,指定数据库连接信息、实体类扫描路径等。例如: ```xml &lt;bean id="sessionFactory" class="org.springframework....

    Spring-hibernate结合使用全xml配置方式

    通过以上步骤,你已经成功地将Spring和Hibernate整合在一起,使用全XML配置方式实现了数据访问层。这种方式虽然较为繁琐,但能清晰地分离各层职责,便于管理和维护。在实际项目中,还可以考虑使用注解配置或者Spring...

    网上订餐系统(struts+spring+hibernate)130221.rar

    3. WEB-INF目录:包含web.xml(Web应用的部署描述符)、struts-config.xml(Struts配置文件)、spring配置文件(如applicationContext.xml)和Hibernate的配置文件(如hibernate.cfg.xml)。 4. lib目录:存放项目所...

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

    例如,struts.xml中配置Action类及其结果视图,applicationContext.xml中配置Spring Bean,而hibernate.cfg.xml则定义了数据库连接和实体类映射。 在本项目中,"说明.txt"文件可能包含了详细的步骤指导,包括如何...

    Struts+Spring+Hibernate 整合教程.rar

    3. 配置Hibernate:配置hibernate.cfg.xml,设置数据库连接信息,导入实体类的映射文件。 4. 使用Spring的WebApplicationContextLoaderListener监听器加载Spring上下文。 5. 在Struts的Action中,通过Spring的...

    applicationContext.xml详解

    ApplicationContext.xml是Spring框架中的核心配置文件,它是Spring的IOC(Inverse of Control,控制反转)容器的核心组件。该文件用于定义和配置Spring应用程序中的各种Bean,对于Spring应用程序的开发和维护起着至...

    Struts+Spring+Hibernate整合教程.pdf

    2. 配置Spring:创建ApplicationContext配置文件,定义Bean及其依赖关系。 3. 配置Struts:在struts-config.xml中配置Action和ActionForward,同时使用Spring的Action代理实现DI。 4. 配置Hibernate:设置hibernate....

    springmvc+spring+hibernate

    5. **配置Hibernate**:在applicationContext.xml中配置Hibernate的SessionFactory,包括实体管理工厂、实体类扫描路径、数据库连接信息、方言等。还可以配置Hibernate的缓存策略。 6. **编写实体类**:根据数据库...

    网上订餐系统(struts+spring+hibernate).rar

    - **配置文件**:Struts的struts-config.xml,Spring的applicationContext.xml,以及Hibernate的hibernate.cfg.xml等,它们定义了框架的配置和组件间的依赖。 - **数据库模型**:查看Hibernate映射文件(如.hbm.xml...

    Spring+struts+hibernate的整合.

    这意味着你需要在 `applicationContext.xml` 中配置 Hibernate SessionFactory,并让 Spring 管理事务。 **4. 在 Struts 配置文件中融合 Spring** 为了让 Struts 能够与 Spring 无缝协作,需要在 Struts 的配置文件...

    图文教程MyEclipse配置struts+hibernate+spring.doc

    在本文档中,我们可以看到spring的配置过程,包括添加spring需要的文件、配置applicationContext.xml文件等。 4.三框架的整合 本文档的主要内容是讲述如何将struts、hibernate和spring三个框架整合在一起,以实现...

    flex+Spring+Hibernate整合配置详解

    选择Hibernate库,让Eclipse自动生成`hibernate.hbm.xml`配置文件,并在`ApplicationContext.xml`中添加`LocalSessionFactoryBean`。最后,选择之前配置的数据库驱动,以连接到数据库。 整合完成后,开发人员就可以...

    spring4的所有jar包+applicationContext.xml+web.xml

    在“spring4的所有jar包+applicationContext.xml+web.xml”这个组合中,我们主要讨论以下几个关键知识点: 1. **Spring框架的jar包**:Spring框架由多个模块组成,每个模块都有相应的jar包。主要包括Spring Core、...

    JavaEE spring和Hibernate整合(有hibernate.cfg.xml)

    3. 创建Spring配置文件:在Spring的配置文件(如applicationContext.xml)中,声明DataSource、SessionFactory和TransactionManager。通常,会使用HibernateTransactionManager作为事务管理器,并通过Bean来注入...

    现有Mysql数据库,写Spring + Hibernate的配置文件

    接下来,配置Spring的ApplicationContext.xml文件。在这个文件中,声明DataSource、SessionFactory和HibernateTransactionManager等重要bean。DataSource通常是连接到MySQL数据库的配置,包括URL、用户名、密码和...

    jsf+spring+hibernate.pdf

    在Spring的ApplicationContext.xml中,我们将配置数据源、Hibernate SessionFactory以及事务管理器。数据源通常是一个Bean,它的定义引用了之前在Proxool.xml中配置的信息。SessionFactory Bean负责创建和管理...

    Spring+SpringMVC+Hibernate框架集成详解

    我们首先需要添加 Hibernate 相关的 JAR 包,然后在 applicationContext.xml 中添加 Hibernate 相关配置,以便配置 Hibernate 框架。 框架集成 在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate ...

Global site tag (gtag.js) - Google Analytics