拿房屋买卖举例,流程:销售房屋 -- 接待员 -- 销售员 -- 财务

售楼处

存放着所有待售和已售的房屋数据(数据源 datasource)

总经理

带领一套自己的班底,下属员工都听自己的,服务于售楼处(jpa框架,mybatis或jdbctemplate...不同的jpa框架都实现了jpa规范)

《客户接待成交守则》

①任何接待员可以接待任何客户,一位客户只能被一位销售员服务,除非销售员离职或放弃该客户,服务于售楼处(事务,被事务包裹的数据操作具有原子性、一致性、隔离性、持久性,为数据操作提供业务保证)

②客户夫妻俩之前没联系,同时被两个销售员服务,这时如何操作?(Spring事务的传播属性,默认PROPAGATION_REQUIRED)

③如果一个新销售员实在搞不定一个客户,那是不是可以考虑让一个老销售员来协助他促成这笔单子呢?(spring数据库隔离级别, MySQL InnoDB默认Repeatable-Read,隔离级别值为2,避免脏读,不可重复读,允许幻读)

具体参阅:https://www.cnblogs.com/fjdingsd/p/5632949.html

《销售客户对应名单》

哪个客户属于哪个销售的数据名单,只要在该名单里能找到要查的客户记录,那么他的销售就受《客户接待成交守则》 规范(方法或类上标记了@Transactional,那么spring启动的时候就会扫描到他们,并且给他们加上事务操作,这是spring的声明式事务)

《销售员售楼培训手册》

客户每次来售楼处,要先问客户是不是首次到店,首次到店给他联系销售员,非首次到店给他联系自己的销售顾问,即使双方都谈妥了,如果客户的贷款申请不下来,那这个单子也成交不了,还要把客户的定金退还给他。如果都正常就走财务结款成交。销售员要时刻铭记这些要求。(spring的事务aop,定义了何时开启事务,何时回滚事务,何时提交事务。)

具体spring的事务实现原理实现细节参阅:

spring事务管理器的源码和理解

Spring 事务管理原理探究

Spring @Transactional工作原理

通俗的讲法理解spring的事务实现原理的更多相关文章

  1. 理解spring对事务的处理:传播性

    所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring 支持 7 种事务传播行为: PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在 ...

  2. Spring的事务实现原理

    主流程 Spring的事务采用AOP的方式实现. @Transactional 注解的属性信息 name                当在配置文件中有多个 TransactionManager , ...

  3. Spring系列.事务管理原理简析

    Spring的事务管理功能能让我们非常简单地进行事务管理.只需要进行简单的两步配置即可: step1:开启事务管理功能 @Configuration //@EnableTransactionManag ...

  4. 深入理解spring中的AOP原理 —— 实现MethodInterceptor接口,自已动手写一个AOP

      1.前言 AOP是面向切面编程,即“Aspect Oriented Programming”的缩写.面对切面,就是面向我们的关注面,不能让非关注面影响到我们的关注面.而现实中非关切面又必不可少,例 ...

  5. 深入理解Spring Security授权机制原理

    原创/朱季谦 在Spring Security权限框架里,若要对后端http接口实现权限授权控制,有两种实现方式. 一.一种是基于注解方法级的鉴权,其中,注解方式又有@Secured和@PreAuth ...

  6. 理解Spring:AOP的原理及手动实现

    引入 到目前为止,我们已经完成了简易的IOC和DI的功能,虽然相比如Spring来说肯定是非常简陋的,但是毕竟我们是为了理解原理的,也没必要一定要做一个和Spring一样的东西.到了现在并不能让我们松 ...

  7. 从源码中理解Spring Boot自动装配原理

    个人博客:槿苏的知识铺 一.什么是自动装配 SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot在启动时会扫描外部引用jar包中的META-INF/spring.factori ...

  8. 理解Spring:IOC的原理及手动实现

    Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.也是几乎所有Java工作者必须要掌握的框架之一,其优秀的设计思想以及其代码实现上的艺术也是我们需要掌握的. ...

  9. 深入理解 Spring 事务原理

    本文由码农网 – 吴极心原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 一.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供 ...

随机推荐

  1. Android群英传笔记——第九章:Android系统信息和安全机制

    Android群英传笔记--第九章:Android系统信息和安全机制 本书也正式的进入尾声了,在android的世界了,不同的软件,硬件信息就像一个国家的经济水平,军事水平,不同的配置参数,代表着一个 ...

  2. 【公开课】【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路

    MySQL的公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 本文根据阿里高级数据库专家何登成在首届阿里巴巴在线技术峰会上的分享整理而成.他主要介 ...

  3. Java-Iterator总结

    纸上得来终觉浅,绝知此事要躬行  --陆游    问渠那得清如许,为有源头活水来  --朱熹 迭 代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构. ...

  4. android沉浸式状态栏的实现

    在style.xml中添加 [html] view plaincopy <style name="Theme.Timetodo" parent="@android: ...

  5. Android Studio 1.2.2设置显示行号

    Android Studio设置显示行号的方法与Eclipse有少许差别,直接在代码中右键,弹出右键菜单是没有显示行号功能的. 在Android Studio中设置方法有二: 1.临时显示行号 在单个 ...

  6. Cocos2D中的ObjectAL简介

    Cocos2D包含ObjectAL音频库,可以回放音效和音乐. ObjectAL是一个建立在低级别OpenAL API上的库.OpenAL最擅长被用来播放短的音效(.wav,.caf,.aiff),并 ...

  7. mysql随笔

    MySQL查询优化器--非SPJ的优化 MySQL查询优化器--非SPJ优化(一)--GROUPBY优化 http://blog.163.com/li_hx/blog/static/183991413 ...

  8. OS X 平台的 8 个实用终端工具

    本文由 伯乐在线 - shinancao 翻译自 mitchchn.欢迎加入iOS小组.转载请参见文章末尾处的要求. OS X 终端对外开放了许多很强大的UNIX实用工具和脚本.如果你是从Linux转 ...

  9. iOS 字体权重weight

    UIFontWeightUltraLight  - 超细字体 UIFontWeightThin  - 纤细字体 UIFontWeightLight  - 亮字体 UIFontWeightRegular ...

  10. Ubuntu 14.04 32位 JDK+ADT Bundle+NDK安装

    1. 安装JDK tar或GUI解压jdk-8u25-linux-i586.tar.gz 编辑/etc/environment文件 CLASSPATH="/home/zhouwei/jdk1 ...