SpringMVC在controller层捕获了service层的异常,事务还会回滚吗

如题,我在service层加了事务,并在controller层捕获了service层的异常并处理掉,那么service层的事务会回滚吗?

0

2个回答

会回滚,
在service层抛出的异常,你在controller层能捕捉到这个异常并处理就可以回滚(前提是你捕捉的异常大于抛出的异常)

2
qq_40148566
qq_40148566 学习了。。。
一年多之前 回复

只要你service层抛出了异常,并且你加的事务可以处理这个异常,也就是rollbackfor=..Exception.class 这个符合你抛出的异常,不管外面有没有捕获都可以回滚

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring和springmvc给service层和controller层分别添加事务
第一个:    事务的声明是在spring里面进行声明的. <bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" />&amp
DAO层,Service层,Controller层、…
DAO层 DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。  Service层 Se
Service层事务不能回滚的解决方式
1、在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的         默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。           spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但
SpringMVC Dao层注入到Service层,Service层注入到controller层及相关XML
1 本人新手,刚开始学习SringMVC框架,需要各个层之间的注入。 举个例子: 最初,在dao层实现service的方式是,new出来一个(每个方法都要new一次)。 IServiceImpl service =new IServiceImpl(); service.fill();//fill是我服务中的方法  完成注入之后,每个方法使用service如下: service.fill...
DAO层,Service层,Controller层、View层 的分工合作
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。 Service层:...
DAO层、Service层、Controller层、View层介绍
DAO层 DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。  Service层 Ser
Dao层,Controller层、View层 ,Service层的简单了解
1.dao层 dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的。dao就是把数据存起来,之所以service的方法会有雷同只不过是因为service得需求不是很复杂不用再service里面完成太多包装或者处理过程可以直接调用dao的方法就完成的请求处理例如就要save一个对象,而这个对象是封装好的,dao里面有个方法专门save封装好的对象于
DAO层,Service层,Controller层、View层详解
本文转载自http://www.jianshu.com/p/403acf6df6561、Dao层Dao层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,Dao层的设计首先是设计Dao的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,Dao层的数据...
DAO层_Service层_Controller层、View层介绍
DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。
DAO层,Service层,Controller层、View层介绍
DAO层 DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。  Service层
DAO层,Service层,Controller层、View层协同工作机制
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。 Service层:Serv
controller层 trycatch不影响service层抛出的异常
1.controller层 trycatch不影响service层抛出的异常 因为 service层利用spring 的aop控制异常, 而controller层 try catch 不影响, aop完成之后,才会到controller层,所以不影响,但如果在service try catch 一定要抛出异常 否则 不回滚, @Transactional(rollbackFor = ...
service层和controller层 dto问题
我项目使用Springboot框架,一般用JPA查询数据库返回domain对象,然后service进行数据处理,返回给controller对象,最后controller返回封装了domain的dto对象。rn但是现在出现一个问题,比如我的domain名字叫做subject,属性有id,title,以及description,另外还有一个一对多的关系 List qList 正常查询没有问题,返回json即可,但是我有一个接口不需要所有的qList 只需要qList的大小即可,我是重新设计一个dto还是改一下subject这个实体,增加一栏questionSize这个属性?可能描述不太准确,麻烦大家看看,谢谢~
在Controller层无法注入Service层的对象
Q: ringframework.beans.factory.BeanCreationException: Error creating bean with name ‘registAction’: Injection of autowired dependencies failed; nested exception is org.springframework.bean
捕获Service层异常,统一处理
新增注解,实现类和方法层级的异常捕获 package com.ahdruid.aop.annotation; import java.lang.annotation.*; /** * 服务异常捕获,如捕获Service向外抛出的异常 * <p> * 添加在类上、方法上 * */ @Documented @Target({ElementType.METHOD, Elem...
JS层向Controller层传参异常
JS层向Controller层传参异常问题解决方法 问题 今天开发时,发现页面表单中的Date类型,从js层向controller层传参的时候异常,始终传参失败。后来发现在使用SpingMVC框架时,经常会遇到页面某些数据类型是Date、Integer、Double等的数据要绑定到控制器的实体,或者控制器需要接受这些数据,如果这类数据类型不做处理的话将无法绑定。 解决方法 在controller层...
spring 事务管理——回滚之service层
转载https://blog.csdn.net/yipanbo/article/details/46048413 1测试controller@Controller public class DemoController2 { @Autowired private DemoService demoService; /** * * @param response ...
spring 框架 service 层 事务异常
service  层中,不要try{...}catch(){} 捕获异常,否则事务不起作用!
service层异常的处理
1、在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的       默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。         spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置...
controller和service层的一些见解
接触java EE开发一年不到,刚开始接触时用就用到spring MVC,因为当时公司业务比较简单,所以service层和dao层实际上是一样的,业务逻辑全部放在了controller层来做;当时觉得很纳闷,service层感觉是多余的,根本用不到;  最近接触的项目,架构师设计的框架,直接根据模型设计dao层接口和service接口,代码写了不少,突然发现这么定义接口很多功能是没法实现的。
Spring配置事务在DAO层和SERVICE层
【转载自[u]http://www.blogjava.net/hk2000c/archive/2007/11/01/157508.html[/u]】 【感谢原作者:hk2000c】 Spring通过AOP实现声明式事务管理。通常通过TransactionProxyFactoryBean设置Spring事务代理。我们需要一个目标对象包装在事务代理中。这个目标对象一般是一个普通Java对象的bea...
SpringMVC Controller层接收请求参数
@RequestParam GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上 作用:用于将指定的请求参数赋值给方法中的形参。 SpringMVC Controller接收请求参数 ) ...
SpringMVC的Controller层获取表单数据
Controller获取表单数据有三种方法: 1. 传入Servlet的HttpServletRequest参数,并通过request.getParameter()获取请求数据。 @RequestMapping(method = RequestMethod.GET) public String showUserMessage(HttpServletRequest requ...
springmvc中的controller层的返回值
Controller方法返回值 1返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。 2返回void        在Controller方法形参上可以定义request和response,使用request或response指定响应结果: 2.1、使用request转发页面,如下: request...
springmvc 中dao层和service层的区别
springmvc 中dao层和service层的区别
一个小的Dao层、service层、controller层代码示例
//Dao层 package com.bear.cakeonline.test; import javax.annotation.Resource; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org
Spring配置事务在Dao层和Service层
【转载自http://www.blogjava.net/hk2000c/archive/2007/11/01/157508.html】  【感谢原作者:hk2000c】  Spring通过AOP实现声明式事务管理。通常通过TransactionProxyFactoryBean设置Spring事务代理。我们需要一个目标对象包装在事务代理中。这个目标对象一般是一个普通Java对象的bean。当我们
【转载】MVC的dao层、service层和controller层
转载地址:https://blog.csdn.net/qq_26411021/article/details/79493340 1、dao层 dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显...
Spring配置事务在DAO层和Service层
Spring配置事务在DAO层和Service层 分类: spring 2008-08-19 11:07 3065人阅读 评论(0) 收藏 举报 springdaoserviceclassbeanstruts Spring通过AOP实现声明式事务管理。通常通过TransactionProxyFactoryBean设置Spring事务代理。我们需要一个目标对象包装在事
将dao层事务提升到service层
title: Service层事务 date: 2018-12-06 00:19:24 tags: 安卓开发 将dao层事务提升到service层 ​ dao层就是数据库连接层,service层就是业务层,开发中我们通常将表映射成java对象形式,建立起dao层针对表的增删改查,但dao层的对象一般只针对一个表的操作,在实际开发中我们通常需要一次修改好几张表,比如在班级系统中,如果我删除某个班级...
Java中Dao层、Service层和Controller层的区别
Java中Dao层、Service层和Controller层的区别 Dao层又叫数据访问层, 针对数据库进行一些增删改查的操作 Controller层 负责请求转发,接受页面过来的参数,传给Service层处理,接收反馈信息,再传给页面。 Service层又叫服务层. 内置服务,接收来自Controller层的消息和将Dao层反馈信息传递至Controller层. 运行流程. ...
单元测试总结:Dao层、Service层和Controller层
对Dao层、Service层、Controller层进行单元测试,都需要加入如下注解: @ContextConfiguration({"classpath*:/conf/applicationContext.xml", "classpath*:/conf/spring-mvc.xml"}) @RunWith(SpringJUnit4ClassRunner.class) //调用Spri...
Java中DAO层、Service层和Controller层的区别
DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。 Service层: Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不...
service层配置事务问题
今天遇到个问题,利用spring将事务配置在了service层,在其中一个业务方法中需要2次调用同一个dao的delete方法,删除某个对象的时候是不一定成功的(有外键引用的话就不能删除),在删除多个对象的时候出现了问题,比如现在删除2个对象,第一个对象是可以删除的,可是第2个对象是删除不了的,这个时候我希望在第二个删除失败的时候,第一个对象也不要被删除,也就是说我想他们处在同一事务中,不知道怎么配置,以下是部分配置!rnPROPAGATION_REQUIRED,-Exception、rn请大家帮忙!rn补充说明:在日志中发现,他是先删除一个对象,然后直接提交事务的!现在知道是这个原因,但是怎么改配置能让他们处于通一事务中呢?rnrnn[b]问题补充:[/b]n问题是我现在dao层是没配置事务的啊,但就是第一个被删除了!rn请问dao层如果不配置事务的话,那么默认他有没有事务呢?n[b]问题补充:[/b]n配置文件中就是这样配置的rnPROPAGATION_REQUIRED,-Exception、 rnn[b]问题补充:[/b]nrn rn rn rn rnrn rn rn rn rn rn PROPAGATION_REQUIRED,+Exceptionrn PROPAGATION_REQUIRED,-Exceptionrn PROPAGATION_REQUIRED,-Exceptionrn PROPAGATION_REQUIREDrn rn rn 所有配置rnn[b]问题补充:[/b]nrn rn rn rn rn rn rn rn rn rn rnn[b]问题补充:[/b]npublic void delete(Pricing persistentInstance) rn log.debug("deleting Pricing instance");rn try rn getHibernateTemplate().delete(persistentInstance);rn log.debug("delete successful");rn catch (RuntimeException re) rn log.error("delete failed", re);rn throw re;rn rn rn这个是dao代码,我不清楚你说的配置事务是说明意思?n[b]问题补充:[/b]nPROPAGATION_REQUIRED,-Exception 这里算不算配置事务呢?n[b]问题补充:[/b]n但是很奇怪,现在就是在删除的时候如果第一个删除ok第二个失败的话 第一个不会回滚,在看日志记录的时候发现他在删除第一个的时候开启了事务,然后删除结束后就提交了事务,不知道为什么了? 难道dao不配置默认也是有事务的?n[b]问题补充:[/b]npublic void delete(Pricing persistentInstance) rnlog.debug("deleting Pricing instance"); rntry rngetHibernateTemplate().delete(persistentInstance); rnlog.debug("delete successful"); rn catch (RuntimeException re) rnlog.error("delete failed", re); rnthrow re; rn rn rn这个就是dao代码! 谢谢帮忙n[b]问题补充:[/b]ndao代码贴出来了 是没有事务的!n[b]问题补充:[/b]n回复 constant rn 我也很奇怪,配置信息及dao代码都贴上来了就是比较郁闷。第一个总是本删除rn 我看了日志,在删除第一个的时候他打开事务的删除完毕之后就提交事务。rn但是我的dao根本是没有配置事务的! 郁闷了n[b]问题补充:[/b]n各位好!我发现问题了! 本来应该是在service方法里调用2次dao里的delete方法,而代码是在action类里2次调用了service类的方法。 哎 还是不够细心的问题 ! 谢谢你的帮忙 !  谢谢大家的帮忙!
事务开启在service层的疑问
开发使用的是ssh,action调用service,service调用dao。使用spring的事务管理将事务开启在service层,但是现在有个疑问。如果我的action调用了多个service那个如果其中一个service出现异常这个service会回滚但是对于整个action来说其实还是不对的。那么事务就要开启在action层了。那么如果我的action经常要调用多个service还有必要要把事务开启在service层吗?下面是伪代码rn[code="java"]rnclass testActionrn testAService.add();rn testBService.update(); //出现异常,那么add已经调用过了是不会回滚事务的!!!rn testCService.del()rnrnrn[/code]rn虽然我可以在action层开启事务,这样这3个service就会在同一个事务中了。
spring开启事务在service层
spring开启事务在service层
DAO层 Entity层 Service层 Controller层View层的区别和联系
1.DAO层:持久层 主要与数据库进行交互 通过@Repository用于标注数据访问组件DAO层 @Service,@Compent,@Controller没有本质区别 只是为了更好的区分功能 @Mapper注解:作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类 @MapperScan:作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的...
Dao层,Mapper层,controller层,service层,model层都有什么作用
SSM是sping+springMVC+mybatis集成的框架。 MVC即model view controller。 model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。 service层。存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道...
Java在Service层异常封装
dao层不需要抛出异常,应该在service层抛出异常,可以是自定义的异常,也可以包装异常,然后在controller中定义exception handler统一处理或者单独处理。 参考: https://segmentfault.com/q/1010000006653269 ==>如有问题,请联系我:easonjim#163.com,或者下方...
spring在service层的方法报错事务不会回滚
@Transactional(rollbackFor = {Exception.class}) public void insertData() throws Exception { // 业务代码1 business1(); // 业务代码2 business2(); // 业务代码3 business3(); } public void business1() { /...