前段时间在弄spring mvc在配置XML事务时,发现spring的事务全部没上去,也没有报错。于是在Service层用TransactionAspectSupport去捕捉事务回滚
try { userDao.add(user); User s = new User(); userDao.add(s); } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); e.printStackTrace(); }
结果spring提示NoTransaction的错误。
之后我用Junit 测试的时候发现事务是没问题的,这下我懵了。。
然后花了2天找了一下一段话:
springmvc 事务失效问题
如果带上事务,那么用annotation方式的事务注解和bean配置,事务会失效,要将service bean配置到xml文件中才行
学springmvc 必定要知道的问题! 哈哈
这个问题是由于问答上有解决方案
引用
这个问题很经典了
在主容器中(applicationContext.xml),将Controller的注解排除掉
<context:component-scan base-package="com">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
而在springMVC配置文件中将Service注解给去掉
<context:component-scan base-package="com">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
因 为spring的context是父子容器,所以会产生冲突,Controller会先进行扫描装配,而此时的Service还没有进行事务的增强处理, 得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力) ,最后才是applicationContext.xml中的扫描配置进行事务处理。
初学者的杯具啊。。。。。
相关推荐
这个精简版本的Spring MVC框架,正如标题和描述所提及,是完全基于注解的,这意味着开发者无需编写大量的XML配置文件,而是通过在类和方法上使用特定的注解来实现组件的配置和功能绑定。 首先,让我们深入理解...
在Spring框架中,有多个关键知识点值得探讨。...总的来说,这些内容涵盖了Spring的多个重要方面,包括事务管理、AOP、IoC/DI、Bean后处理、MVC集成、数据绑定和扩展,为理解和应用Spring框架提供了深入的见解。
Spring+SpringMVC配置事务管理无效原因及解决办法详解 Spring 框架是 Java 企业级应用程序的核心框架,提供了事务管理机制,以确保业务逻辑的原子性和一致性。然而,在使用 Spring 和 SpringMVC 配置事务管理时,...
3. 配置Spring MVC:创建spring-mvc-dispatcher-servlet.xml,设置DispatcherServlet,定义视图解析器,如InternalResourceViewResolver,以及模型数据绑定、异常处理等。 4. 配置Hibernate:在Hibernate配置文件...
2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言...
在Spring MVC中,AOP(面向切面编程)是一种强大的工具,可以让我们在不修改代码的情况下,对程序的特定部分进行增强,例如日志记录、事务管理或性能监控。在这个场景中,我们将讨论如何利用AOP来实现Controller的...
2. **Spring MVC**:Spring的Model-View-Controller(MVC)架构为Web应用提供了强大的支持,包括控制器、模型对象、视图解析等,简化了Web应用的开发。 3. **AOP**:Spring的AOP模块支持声明式事务管理、日志记录、...
Spring MVC可以结合事务管理器来处理跨服务的事务一致性问题。 3. **故障恢复**:分布式系统中单个节点的故障可能会影响整个系统的可用性。Spring MVC可以通过集成重试机制和服务发现机制来增强系统的容错能力,...
这样,Spring容器可以自动管理Web服务实例,同时利用Spring的其他功能,如事务管理、AOP等。 接下来,项目中提到了Spring MVC,它是Spring框架的一个模块,用于构建Web应用程序。它提供了一个模型-视图-控制器(MVC...
常见的调试问题包括实体类的映射文件(hbm.xml)错误、SQL查询语句异常、事务管理失效等。使用Hibernate的show_sql属性可以帮助我们查看生成的SQL,通过对比实际数据库操作,找出问题所在。此外,还要注意N+1查询问题...
在SSM整合中,避免了SpringMVC与Spring注解重复扫描导致的事务失效问题,这可能涉及到Spring的扫描范围设置。当两个不同组件扫描相同范围的类时,可能会出现事务管理器无法正确识别事务边界的问题。通过合理配置扫描...
"spring与springmvc常见面试题" Spring 是一个流行的 Java Web 应用框架,提供了 ...(不推荐使用)2、声明式事务,在配置文件中配置(推荐使用)声明式事务又分为两种:基于注解的声明式事务和基于 XML 的声明式事务。
Spring.NET可以与ASP.NET MVC、Web API等Web框架集成,提供模型绑定、验证、动作过滤器等特性,帮助构建更健壮、可测试的Web应用。此外,Spring.NET还提供了用于处理HTTP请求的独立HTTP基础结构,可以在非ASP.NET...
这个系统利用了Struts2、Hibernate和Spring这三大核心框架,它们是Java企业级应用开发中的常用工具,用于实现模型-视图-控制器(MVC)架构模式。 Struts2作为前端控制器,负责处理用户请求,调度应用程序的行为,并...
开发中常见的问题可能有Bean的生命周期管理、事务失效、AOP不生效等,这些问题通常需要检查Spring配置、Bean的定义和依赖关系。 3. **Hibernate**:Hibernate是一个ORM(对象关系映射)框架,它简化了数据库操作。...
通过阅读提供的博客链接(已失效,无法查看具体内容),你可能能更深入地理解JPA+Spring+Struts2整合的具体步骤和实践技巧。在实际项目中,不断学习和实践这些技术,将有助于提升你的开发技能。
然后,根据博文链接(https://ruanchengui1.iteye.com/blog/780396,该链接可能已失效,需自行查找有效资源)的指导,配置相关的XML配置文件,如Struts2的`struts.xml`、Hibernate的`hibernate.cfg.xml`和Spring的`...
通常,一个这样的项目会包含以下结构:`src/main/java`存放业务逻辑和实体类,`src/main/resources`存储配置文件,如hibernate.cfg.xml和spring配置文件,`src/main/webapp`是Web应用的根目录,包含JSF页面和其他...
Spring 5.1.9是该框架的一个稳定版本,其主要特性包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/集成以及Web MVC。Spring MVC是Spring框架的一部分,负责处理HTTP请求和响应,提供模型-视图-控制器...
- 引入Spring的相关库,包括AOP、Core、Web模块的jar包,比如`applicationContext.xml`文件一般存放在`WEB-INF`目录下,用于定义Bean和配置Spring的核心功能。 - 在`web.xml`中配置监听器`ContextLoaderListener`...