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

service层异常的处理

    博客分类:
  • Java
 
阅读更多

1、在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的
       默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。  
       spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚,换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚
  解决方案: 
  方案1.例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句,以便让aop捕获异常再去回滚,并且在controller层要继续捕获这个异常并处理
  方案2.在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)

分享到:
评论

相关推荐

    springboot 全局异常处理

    springboot 全局异常处理.捕捉全局异常,转换格式,以友好方式提示客户正确的操作步骤. 避免系统错误出现在用户勉强,造成不良使用体验.

    Java异常介绍及Spring Boot统一异常处理

    Spring Boot 提供了统一的异常处理机制,通过使用 @ControllerAdvice 和 @ExceptionHandler 注解,可以实现对控制器层、Service 层、Dao 层以及 Spring 系统内定义的部分异常的统一处理。 在 Spring Boot 中,可以...

    JDBC_DAO设计思想与搭建骨架, 结合Service层讲解DAO层的异常处理

    NULL 博文链接:https://royzhou1985.iteye.com/blog/341849

    Java Web项目整体异常处理机制

     出来工作一年时间了,我也大概对异常处理有了一些了解,在这呢小弟简单介绍下个人对异常处理的见解,抛砖引玉,希望各位大神提出宝贵的意见和建议。  拿spring+struts2+hibernate项目说明:通常一个页面请求到...

    MVC设计思想 用户登陆注册注销

    如果一个异常抛给上一层会增加程序的耦合性,请当场解决:如将xml解析错误抛给service层,那么当换成mysqldao时,还需要修改service去掉xml解析异常的处理 如果上一层明确需要此异常进行代码的流转,请抛出:如当...

    本科毕业设计+基于Springboot+JPA+semantic开发的个人博客系统

    项目知识详解: 整体项目基于springboot框架开发 数据库采用了mysql 以及 JPA 实现对数据库的链接 ...依次是javabean,配置类,contrler层,dao层,实体类,异常定义,异常处理,拦截类,service层,工具类

    Java一键生成代码到controller层【源码】

    适合人群 1、具备一定Java编程基础。 2、对springboot,spring,mybatis,mybatis ...4、本项目集成了spring,aop,mybatis plus,swagger2,异常处理,分页,freemarker等多种技术。 5、操作手册参见项目中的README.md文件

    基于Spring Boot的SSMP整合案例

    实体类开发——使用Lombok快速制作实体类 Dao开发——整合MyBatisPlus,制作数据层测试类 Service开发——基于MyBatisPlus进行增量...项目异常处理 按条件查询——页面功能调整、Controller修正功能、Service修正功能

    springboot框架整合SSM案例-图书管理系统 源码分享

    SpringBoot整合Spring+SpringMVC+MyBatisPlus案例:图书管理系统 ...- 项目异常处理 - 按条件查询 —— 页面功能调整、Controller修正功能、Service修正功能 完整源码分享,喜欢的可以酌情下载,感谢下载者的支持!

    Hutuzhang-master.zip

    涉及到如下内容: 基础内容: ...单例模式,面板类与监听器类松耦合,Entity层设计,DAO层设计,Service层设计 业务常见处理手法: CRUD操作,配置信息,配置信息初始化,报表生成,一对多关系,多对一关系

    ABP生成的初始框架

    1.2.11 统一异常处理,应用层不需要自己写异常处理代码 1.2.12 提供针对Application层方法的参数有效性认证 1.2.13 通过Application Service创建Web API层,无需编写ApiController 1.2.14 提供基类帮助用户实现...

    SpringBoot全局错误处理的两种方式:注解法和覆盖路径法

    对于系统中的异常处理是一个大问题,需要考虑几个问题,文后回答 代码中的异常什么时候该抛,什么时候该捕获 系统内部的异常应该在什么位置捕获,controller,service还是dao层 异常应该怎么处理,捕获到异常后应该...

    基于mapper插件编写的可定制代码生成基本框架(springboot)

    统一异常处理 统一接口登录认证 常用基础方法抽象封装 Controller、service、dao层基类抽取。 常用工具类集成 使用FastJsonHttpMessageConverter,提高JSON序列化速度 集成MyBatis、通用Mapper插件、...

    一本糊涂账-基于Swing和JDBC开发的图形界面桌面应用

    本项目是基于Swing和JDBC开发的图形界面...单例模式,面板类与监听器类松耦合,Entity层设计,DAO层设计,Service层设计 业务常见处理手法: CRUD操作,配置信息,配置信息初始化,报表生成,一对多关系,多对一关系

    how2j一本糊涂账项目

    单例模式,面板类与监听器类松耦合,Entity层设计,DAO层设计,Service层设计 业务常见处理手法: CRUD操作,配置信息,配置信息初始化,报表生成,一对多关系,多对一关系 通过本项目,积累宝贵的项目经验,在...

    基于SpringBoot+Druid+Mybatis+Vue+Elementui的小区物联网平台项目源码+数据.rar

    dao 数据库操作层 entity 实体对象 exception 异常相关包 extApi 对外平台开放API 相关java factory 工厂类处理包 如果门禁 认证工厂类等 init 系统启动初始化包 mqtt mqtt 相关java类 netty netty 相关java...

    spring+springmvc+mybatis项目案例实现用户角色权限管理

    使用了springmvc统一异常处理 使用了FormattingConversionServiceFactoryBean对于传入参数中日期或数字字符串进行数据转换和数据格式化 使用了SpringContextHolder方便在自定义线程中调用spring已经实例的bean,如...

    大地震前震中上空电离层全电子含量异常研究 (2008年)

    采用IGS(Internationa]I GPs service)网站提供的电离层垂直全电子含量(vertical total elearon content,记为VrEC),分析研究了1998―2006年发生在中国大陆地区的30个M≥6.0的地震.采用统计处理的方法,讨论了...

    学生管理系统1.0(SpringBoot+mybatisPlus+thymeleaf)

    学生管理系统1.0版本,实现简单的学生信息增删改查; 技术栈采用SpringBoot+mybatisPlus+thymeleaf,整合mysql...采用MVC三层架构(即controller层、service层和dao层); 后续会继续完善,添加对应的异常处理和鉴权。

    Spring.3.x企业应用开发实战(完整版).part2

    16.6 使用unitils测试Service层 16.7 测试Web层 16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战...

Global site tag (gtag.js) - Google Analytics