java spring 事务处理_Spring框架事务处理和SpringMVC

本文详细介绍了Spring框架中的事务管理,包括PlatformTransactionManager接口及其常用实现,Spring的回滚策略,以及TransactionDefinition中的事务常量。此外,还讲解了事务的ACID特性。同时,文章探讨了AspectJ的AOP配置和注解方式管理事务。最后,文章简述了MVC模式,SpringMVC的发展历程、主要组件和请求处理流程,以及解决静态资源访问问题的策略。
摘要由CSDN通过智能技术生成

事务管理务原本是数据库中的概念,在Dao层。但一般情况下,需要将事务提升到业务层,即Service层。这样做是为了能够使用事务的特性来管理具体的业务。

Spring事务管理事务管理器是PlatformTransactionManager接口对象。其主要用于完成事务的提交、回滚,及获取事务的状态信息。

PlatformTransactionManager:接口常用的两个实现类

DataSourceTransactionManager:使用JDBC或MyBatis 进行持久化数据时使用。

HibernateTransactionManager:使用Hibernate进行持久化数据时使用。

Spring的回滚方式

Spring事务的默认回滚方式是:发生运行时异常时回滚,发生受查异常时提交

接口TransactionDefinitiond定义的事务的常量

事务定义接口事务定义接口TransactionDefinition中定义了事务描述相关的三类常量:事务隔离级别、事务传播行为、事务默认超时时限,及对它们的操作。

事务传播行为:所谓事务传播行为是指,处于不同事务中的方法在相互调用时,执行期间事务的维护情况。如,A事务中的方法doSome()调用B事务中的方法doOther(),在调用执行期间事务的维护情况,就称为事务传播行为。

事务具有哪些特性原子性:一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。

一致性:事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

AspectJ的AOP配置方式管理事务的spring配置注册事务管理器。

注册事务通知

aop配置

代码示例:

事务注解管理事务的spring配置注册事务管理器。

配置注解驱动

代码示例:

transaction-manager配置对应的是事物管理器的id

MVC介绍MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

View(视图)是应用程序中处理数据显示的部分。

Controller(控制器)是应用程序中处理用户交互的部分。

最典型的MVC就是JSP + servlet + javabean的模式。

MVC发展历史Model 1 (jsp+javabean)

Model 2 (jsp+servlet+javabean)

Model1和Model2的优缺点

目前主流的MVC框架SpringMVC

Struts

JfinalSpringMVC(主流MVC框架):是spring框架的一部分(子框架),是实现对Servlet技术进行封装。

SpringMVC开发步骤导入jar包

配置web.xml,注册SpringMVC前端控制器(中央调度器)

编写SpringMVC后端控制器

编写springmvc配置文件,注册后端控制器(注意id写法格式)

编写跳转资源页面

SpringMVC请求处理流程① 用户发送请求到springmvc框架提供的DispatcherServlet 这个前端控制器

② 前端控制器会去找处理器映射器(HandlerMapping),处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet 。

③ 根据处理器映射器返回的处理器,DispatcherServlet 会找“合适”的处理器适配器(HandlerAdapter)

④ 处理器适配器HandlerAdpater会去执行处理器(Handler开发的时候会被叫成Controller也叫后端控制器) 执行之前会有转换器、数据绑定、校验器等等完成上面这些才会去正在执行Handler

⑤ 后端控制器Handler执行完成之后返回一个ModelAndView对象

⑥ 处理器适配器HandlerAdpater会将这个ModelAndView返回前端控制器DispatcherServlet。前端控制器会将ModelAndView对象交给视图解析器ViewResolver。

⑦ 视图解析器ViewResolver解析ModelAndView对象之后返回逻辑视图。

⑧ 前端控制器DispatcherServlet对逻辑视图进行渲染(数据填充)之后返回真正的物理View并响应给浏览器。

静态资源无法访问解决方案(三种)

第一种在web.xml中进行资源放行

第二种在SpringMVC配置文件中使用MCV标签default-servlet

第三种在SpringMVC配置文件中使用MVC标签的resource

其中location为资源文件路径,mapping的值为映射路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值