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. 算法---高速分拣(quick sort)

    在前面的排序中所描述的算法.最快的排序算法是归并排序,但是有一个缺陷合并排序排序过程的需求O(N)额外的空间.本文介绍了高速的排序算法到位排序算法,所需的复杂性的额外空间O(1). 算法介绍:高速排序 ...

  2. html/css获得第一章

    1.基本教程来学习 大概3天课余时间阅读下面的两个教程. HTML文字教程 CSS文字教程 2.练习 看完教程后.做第一练习时,总结例如以下: 1)div居中 须要设置属性:margin-left:a ...

  3. 【Android基础】listview控件的使用(4)-----自定义布局的listview的使用

    前面我介绍了listview控件的不同用法,但是这些用法在实际的开发项目中是不足以满足需求的,因为前面的几种用法只能简单的显示文本信息,而且布局都比较单一,很难做出复杂的结果,在实际的开发项目中,90 ...

  4. 也可以看看GCD(杭州电2504)(gcd)

    也可以看看GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  5. 终端查询数据库sqlite(创建你自己,或者是coredata创建)那里的东西

    首先需要知道数据库的路径,coredata一般都是在沙箱中创建Documents目录的.虽然他建立了自己看, sqlite3 #数据库路径#        //进入数据库 .tables  //查看数 ...

  6. wxWidgets+wxSmith版电子词典

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...

  7. 读改善c#代码157个建议:建议13~15

    目录: 建议13:为类型输出格式化字符串 建议14:正确实现浅拷贝和深拷贝 建议15:使用dynamic来简化反射实现 一.建议13:为类型输出格式化字符串 有些类型需要我们根据业务需求提供字符串的格 ...

  8. 将odbc扩展编译至nodejs程序集中

    1. 下载nodejs https://github.com/joyent/node 2. 下载odbc for nodejs 扩展 https://registry.npmjs.org/odbc/- ...

  9. 移动端 Retina屏 各大主流网站1px的解决方案

    Retina屏的移动设备如何实现真正1px的线? 在retina屏下面,如果你写了这样的meta <meta name="viewport" content="in ...

  10. DBA查询命令积累——不断更新

    原文:DBA查询命令积累--不断更新 一.服务器配置: 1.兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为. 1.1.查看数据库兼容级别及更改兼容级别: SELECT com ...