41、事务属性是声明式事务管理5种:

传播行为:传播行为定义了client与彼调用方法之间的事务边界。

隔离级别:隔离级别定义了一个事务可能受其它并发事务影响的程度。

仅仅读:表明事务是否是仅仅读的。

事务超时:指定事务执行的最长时间,超时就回滚。

回滚规则:定义了哪些异常会导致事务回滚而哪些不会。

42、脏读、不可反复读和幻读

脏读:一个事务读取了还有一个事务改写可是未提交的数据时。假设改写在稍后被回滚了,那么第一个事务获取的数据就是无效的。

不可反复读:一个事物运行同样的查询两次或者两次以上,可是每次都得到不同的数据。

一般是由于还有一个并发事务在两次查询期间更新了数据。

幻读:一个事务读取了几行数据,接着还有一个并发事务插入了一些数据。

在随后的查询中,第一个事务发现多了一些原本不存在的事务。

43、Spring事务的7种传播行为

PROPAGATION_NESTED 与PROPAGATION_REQUIRES_NEW的差别

它们很 类似,都像一个嵌套事务。假设不存在一个活动的事务。都会开启一个新的事务。使用PROPAGATION_REQUIRES_NEW时,内层事务与外层事务就像两个独立的事务一样。一旦内层事务进行了提交后,外层事务不能对其进行回滚。两个事务互不影响。两个事务不是一个真正的嵌套事务。同一时候它须要JTA 事务管理器的支持。

使用PROPAGATION_NESTED时,外层事务的回滚能够引起内层事务的回滚。而内层事务的异常并不会导致外层事务的回滚。它是一个真正的嵌套事务。

44、Spring事务的5个隔离级别

45、spring注讲解明:

採用扫描的方式 配置Spring XML 书写方式

<context:component-scanbase-package="这里是包名"/>

@Service 用于标注业务层组建

@Controller 用于标注控制层组件

@Component 泛指组件,用于不明白的类

@Repository 用户标注数据库訪问组件

@PostConstruct 创建对象时运行的方法

@PreDestroy 对象摧毁时运行的方法

@Autowired 直接訪问私有属性,直接给私有属性输入值。

@Resource 依据类型注入

46、Spring mvc工作原理:

1.spring mvc请全部的请求都提交给DispatcherServlet,它会托付应用系统的其它模块负责负责对请求进行真正的处理工作。

2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.

3.DispatcherServlet请求提交到目标Controller

4.Controller进行业务逻辑处理后,会返回一个ModelAndView

5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象

6.视图对象负责渲染返回给client。

47、Spring的长处有什么?

1.  Spring是分层的架构,你能够选择使用你须要的层而不用管不须要的部分

2.  Spring是POJO(Plain Ordinary Java Object),POJO编程使得可持续构建和可測试能力提高

3.  依赖注入和IoC使得JDBC操作简单化

4.  Spring是开源的免费的

5.  Spring使得对象管理集中化和简单化

48、spring的事务管理

spring提供了几个关于事务处理的类:

TransactionDefinition //事务属性定义

TranscationStatus //代表了当前的事务。能够提交,回滚。

PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类比如DataSourceTransactionManager等都是这个类的子类。

49、Spring提供的事务管理

spring提供的事务管理能够分为两类:编程式实现事务,AOP配置声明式解决方式。编程式的,比較灵活,可是代码量大,存在反复的代码比較多;声明式的比编程式的更灵活。

编程式实现事务,以下是当中的一种实现方式:

TransactionTemplate 的 execute() 方法有一个 TransactionCallback 类型的參数,该接口中定义了一个 doInTransaction() 方法,通常我们以匿名内部类的方式实现 TransactionCallback 接口,并在其doInTransaction() 方法中书写业务逻辑代码。这里能够使用默认的事务提交和回滚规则,这样在业务代码中就不须要显式调用不论什么事务管理的 API。

doInTransaction()
方法有一个TransactionStatus 类型的參数,我们能够在方法的不论什么位置调用该參数的 setRollbackOnly() 方法将事务标识为回滚的。以运行事务回滚。

依据默认规则,假设在运行回调方法的过程中抛出了未检查异常,或者显式调用了TransacationStatus.setRollbackOnly() 方法,则回滚事务。假设事务运行完毕或者抛出了 checked 类型的异常,则提交事务。

TransactionCallback 接口有一个子接口 TransactionCallbackWithoutResult,该接口中定义了一个 doInTransactionWithoutResult() 方法,TransactionCallbackWithoutResult 接口主要用于事务过程中不须要返回值的情况。

当然。对于不须要返回值的情况。我们仍然能够使用TransactionCallback 接口,并在方法中返回随意值就可以。

声明式事物管理。样例。

<context:component-scanbase-package="com.chou.spring.jdbc"/>
<!-- 配置数据源 -->
<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- Connection Info -->
<property name="driverClass"value="${db.driverClass}" />
<property name="jdbcUrl"value="${db.url}" />
<property name="user"value="${db.username}" />
<property name="password"value="${db.password}" /> <!-- Connection Pooling Info -->
<propertyname="initialPoolSize" value="1" />
<property name="minPoolSize"value="1" />
<property name="maxPoolSize"value="15" />
<property name="maxIdleTime"value="1800" />
<property name="maxStatements"value="0" />
</bean>
<beanid="jdbcTemplateDao"class="com.chou.spring.jdbc.dao.JdbcTemplateDao" >
<property name="dataSource"ref="dataSource" />
</bean> <!-- JDBC事务管理器 -->
<beanid="jdbctTxManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"ref="dataSource" />
</bean>
<tx:adviceid="txAdvice" transaction-manager="jdbctTxManager">
<tx:attributes>
<tx:methodname="domain*"/>
</tx:attributes>
</tx:advice> <aop:configproxy-target-class="true">
<aop:advisoradvice-ref="txAdvice"
pointcut="execution(*com.chou.spring.jdbc.service.JdbcTemplateService.*(..))"/>
</aop:config>

版权声明:本文博主原创文章,博客,未经同意不得转载。

【专访】【Spring常见问题汇总】【05】的更多相关文章

  1. Hive常见问题汇总

    参考资料: Hive常见问题汇总 啟動hive出錯,提示沒有權限 2015年04月02日 09:58:49 阅读数:31769 这里小编汇集,使用Hive时遇到的常见问题. 1,执行#hive命令进入 ...

  2. CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

  3. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  4. H5项目常见问题汇总及解决方案

    H5项目常见问题汇总及解决方案 H5   2015-12-06 10:15:33 发布 您的评价:       4.5   收藏     4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...

  5. Installshield脚本拷贝文件常见问题汇总

    原文:Installshield脚本拷贝文件常见问题汇总 很多朋友经常来问:为什么我用CopyFile/XCopyFile函数拷贝文件无效?引起这种情况的原因有很多,今天略微总结了一下,欢迎各位朋友跟 ...

  6. MVC 网站部署常见问题汇总

    一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...

  7. J2EE进阶(十)SSH框架整合常见问题汇总(一)

    SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...

  8. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  9. 转---CentOS安装Oracle数据库详细介绍及常见问题汇总

    一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命 ...

随机推荐

  1. ebay的api开发技术说明,有点乱

    使用eBay API的基本步骤引入 开始eBay API,例如,以下基本步骤需要: 1.    注册开发者账号: https://developer.ebay.com/join/Default.asp ...

  2. HTML的标签使用

    <p>段落标签</p>:段落标签 <hx>标题标签</hx>:标题标签,x代表1-6 <em>斜体</em>:显示的字体是斜的 ...

  3. 在JBuilder8在使用ANT

    在JBuilder8中使用ANT                                                            作者:翁驰原    在JBuilder8中.Ap ...

  4. 2014在百度之星程序设计大赛 - 资格 第四个问题 Labyrinth

    小记:dfs暂停,不是决定性的 思维:由于只有三个方向向上和向下和向右,然后,我对待每列从左至右.然后,当在下一列的上一列的处理再加工每个值去获得正确的值,保存各坐标的数组格你可以得到最大值.每处理完 ...

  5. atitit.404错误调查过程汇总

    atitit.404错误调查过程汇总 #----------jsp  head  errorPage="" del zeu ok le. #------resin server. ...

  6. dom4j解析xml中指定元素下内容

    需求:XML为例如以下样式,如今我仅仅想取得timer以下的5000和60000. 解决的方法例如以下: <?xml version="1.0" encoding=" ...

  7. 存储数据键和项目对的类(Dictionary对象)

    存储数据键和项目对的类(Dictionary对象) <% Class Dictionary Public Copyright, Developer, Name, Version, Web Pri ...

  8. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  9. HDU 4916 树形dp

    Count on the path Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  10. 2014 ACM湖南匹配10会议省赛

    2014湖南游戏..... 1:牡丹江Regional有些球队没来的冲突 2:题目比較水 3:队友神勇发挥 最终在开局不利的情况下完毕了翻盘,拿到了第二名.....没有抓住机会顺势夺冠还是非常遗憾的. ...