Spring+SpringMVC+Hibernate 开启事务为何无反应?(已贴代码)

问题描述

问题说明:使用Spring+SpringMVC+Hibernate架构来做个练习的时候,就出错了。。。按道理说这个问题,只需要配置一个事务就可以了,但是配置了还是出错。。。求解。。。===========================================================================新增用户出错===========================================================================Web.xml配置文件:<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>springMVC_09_RESTRUL_CRUD</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!--Spring--><!--Spring配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:app*.xml</param-value></context-param><!--配置监听器,用于初始化Spring容器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--SpringMVC--><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--处理请求时对字符集编码--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--HiddenHttpMethodFilter过滤器,可以将POST请求转换成DELETE和PUT请求--><filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--配置Spring提供的OpenSessionInViewFilter过滤器,用于解决Hibernate的延迟加载问题!--><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

spring配置文件(applicationContext.xml):<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.1.xsd"><!--扫描指定包下包含注解的类--><context:component-scanbase-package="cn.t118121.springmvc"><!--唯独不扫描被@Controller注解标注的类--><context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan><beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/mydb_01"></property><propertyname="username"value="root"></property><propertyname="password"value="chenzhiyu3360908"></property></bean><beanid="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><propertyname="dataSource"><refbean="dataSource"/></property><propertyname="hibernateProperties"><props><propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><propkey="hibernate.show_sql">true</prop><propkey="hibernate.format_sql">true</prop></props></property><propertyname="mappingDirectoryLocations"value="classpath:cnt118121springmvcbean"/></bean><!--事务管理器--><beanid="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"><propertyname="sessionFactory"ref="sessionFactory"/></bean><!--事务增强--><tx:adviceid="txAdvice"transaction-manager="transactionManager"><tx:attributes><tx:methodname="find*"read-only="true"/><tx:methodname="get*"read-only="true"/><tx:methodname="search*"read-only="true"/><tx:methodname="*"/></tx:attributes></tx:advice><!--定义切面,用于组合事务增强和方法切入点--><aop:config><aop:pointcutexpression="execution(*cn.t118121.springmvc.service.impl.*.*(..))"id="cut1"/><aop:advisoradvice-ref="txAdvice"pointcut-ref="cut1"/></aop:config></beans>

SpringMVC配置文件(springMVC-servlet.xml):<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsd"><!--扫描指定包下包含注解的类--><context:component-scanbase-package="cn.t118121.springmvc"><!--只扫描被@Controller注解标注的类--><context:include-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan><!--配置视图解析器--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".jsp"/></bean></beans>

Controller代码:packagecn.t118121.springmvc.controller;importjavax.annotation.Resource;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importcn.t118121.springmvc.bean.Employee;importcn.t118121.springmvc.service.EmployeeService;@Controller@RequestMapping("/springmvc")publicclassEmployeeController{@ResourceprivateEmployeeServiceemployeeService;/***POST请求,用于获取表单数据,并添加到数据库中,然后重定向到员工列表*/@RequestMapping(value="/employee",method=RequestMethod.POST)publicStringdddEmployee(Employeeemployee){System.out.println(employee);//添加到数据库中employeeService.addEmployee(employee);return"redirect:employeeList";}}

Service代码:packagecn.t118121.springmvc.service.impl;importjava.util.List;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importcn.t118121.springmvc.bean.Employee;importcn.t118121.springmvc.dao.EmployeeDao;importcn.t118121.springmvc.service.EmployeeService;@Service("employeeService")publicclassEmployeeServiceImplimplementsEmployeeService{@AutowiredprivateEmployeeDaoemployeeDao;@OverridepublicList<Employee>getEmployeeList(){returnemployeeDao.getEmployeeList();}@OverridepublicEmployeegetEmployeeById(Integerid){returnemployeeDao.getEmployeeById(id);}@OverridepublicvoidaddEmployee(Employeeemployee){employeeDao.addEmployee(employee);}@OverridepublicvoiddeleteEmployee(Integerid){employeeDao.deleteEmployee(id);}@OverridepublicvoidupdateEmployee(Employeeemployee){employeeDao.updateEmployee(employee);}}

Dao层的代码省略...麻烦各位帮忙解答下~感激不尽~

解决方案

本帖最后由 chen8643766 于 2015-01-03 11:38:47 编辑
解决方案二:
已解决!原因:重复加载bean了,2个配置文件都加载了一遍bean!SpringMVC配置文件:<!--扫描指定包下包含注解的类--><context:component-scanbase-package="cn.t118121.springmvc"use-default-filters="false"><!--只扫描被@Controller注解标注的类--><context:include-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan>

Spring配置文件:<!--扫描指定包下包含注解的类--><context:component-scanbase-package="cn.t118121.springmvc"><!--唯独不扫描被@Controller注解标注的类--><context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Controller"/></context:component-scan>

时间: 2024-10-31 01:27:15

Spring+SpringMVC+Hibernate 开启事务为何无反应?(已贴代码)的相关文章

hibernate4-求助大神,spring.springMvc.hibernate整合。并且全是注解

问题描述 求助大神,spring.springMvc.hibernate整合.并且全是注解 实在找不到教程,望能提供和完整的教程,视频最好 解决方案 给你了你就跑了不采纳怎么办?所以如果需要教程,请先采纳下姐姐的回答,姐姐这就给你. 解决方案二: 慕课网上找找,还有csdn学院里面找找,传智播客的视频教程 找找总有的.现在网络资源这么丰富,勤快耐心点,学习资源还是一大堆的.祝好! 解决方案三: 这个从网上搜吧.去git 里面找个下载. 解决方案四: http://v.youku.com/v_sh

java类的问题-struts+springmvc+hibernate有没有页面登陆和注册的代码和数据库??

问题描述 struts+springmvc+hibernate有没有页面登陆和注册的代码和数据库?? struts+springmvc+hibernate有没有页面登陆和注册的代码和数据库??有没有实现增删改的代码啊?网上的不能实现运行 解决方案 你耐心再找找,换做我也是从网上找,不能用是环境问题,还是啥的,把他解决不就行了 解决方案二: struts+springmvc 都是控制层 不可能一起使用 解决方案三: 好像网上搜的里面加有东西..不能运行..要怎么办?你有案例吗?能发给我一下吗?谢谢

Spring与Hibernate整合事务管理的理解_java

在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的.在Hibernate中我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事务自动提交是false,他是需要我们人为的手动提交事务,假如你不想每次都手动提交事务的话,你可以在hibernate.cfg.xml我文件中把它设置为事务自动提交: xml代码 <property name="def

SSH(spring+springmvc+hibernate)框架快速上手

目录框架 目录框架如图所示.java代码包名即所存放代码的分类. - controller->处理请求 - dao->数据访问层接口 - dao.impl->数据访问层接口实现(实现数据库操作) - entity->实体类(数据库中的表) - service->业务层接口 - service.impl->业务层接口实现(主要代码编写区域) - util->工具集 配置文件 - hibernate.properties->hibernate相关配置(数据库驱动

springmvc+hibernate整合事务不回滚,求解

问题描述 最近心血来潮研究下了springmvc,发现比struts2好用多了,配置也方便,捣鼓了一阵,最后想把hibernate也整进去,结果悲剧就来了,事务就是不回滚,实在没招了,哪位大侠给看下,上代码 springmvc-servlet.xml <mvc:annotation-driven/><!-- 扫描注解时,将service,DAO层的注解排除,只扫描Controller注解 --><context:component-scan base-package=&quo

Spring 2 + Hibernate 3 事务整合问题,高手请进

问题描述 公司一直在用Spring+hibernate作为开发框架,事务采用spring声明式,我指定了在BPO(业务层)类中以×TX方法以事务执行,有以下类publicclassBmsLogFacade{privateBmsLogBPOmyBmsLogBPO;publicvoidwriteLogSave(){TBmsLogDTOdto=getLogDTO();myBmsLogBPO.saveTX(dto);System.out.println(dto.getId());}publicvoidw

spring如何开启事务啊

问题描述 我请教大家一个问题, 最近需要用JAVA搭建一个平台.用ssh框架.好久没有弄,忘了有点.我想问下,spring是如何开启事务的了啊?是默认就开启的,还是需要什么配置啊? 解决方案 http://zywang.iteye.com/blog/974331http://zhou137520.iteye.com/blog/1675199解决方案二:基于aop事务处理的http://blog.csdn.net/irelandken/article/details/7194046

ExtJS+SpringMVC+Spring+Hibernate的一种实现(蒋锋代码分析)

今天以前我写的java环境下web应用都是这种形式:1--自己写的@Controller中的handler方法采用Spring+Hibernate的方式读取数据,读取到我们自定义的PO中(从硬盘读取到内存中).2--然后采用SpringMVC的ModelAndView的方法addObject()将得到的PO或者PO的List放入ModelAndView的实例中.3--然后handler方法中setViewName(),return.相当于返回string或者4--ModelAndView给Spr

关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明

关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明 作者:yanekemail:yanek@126.com 一.实现目标: 通过使用spring和hibernate,实现用户的添加功能.把用户信息加入到数据库中使用Spring 的hibernate模板实现DAO操作. 最终效果: 浏览器中输入 http://localhost:8083/hibernateTestWeb/user.do 数据库就增加一条记录. 二.分层结构 系统采用如下分层结构 1.WEB层:用