安装
mac上安装rabbitmq比较简单,参考官网教程 http://www.rabbitmq.com/install-standalone-mac.html 即可。遇到了下载很慢问题,找了其他网站上下。
其他系统安装方式在官网也有详细描述,不再累述。
mac上安装rabbitmq比较简单,参考官网教程 http://www.rabbitmq.com/install-standalone-mac.html 即可。遇到了下载很慢问题,找了其他网站上下。
其他系统安装方式在官网也有详细描述,不再累述。
弄清spring事务管理机制,首先要弄清什么是事务。
人们创建了一个术语来表示事务:ACID。ACID代表四个特性,相信大家都很熟悉,但我也要贴出来。
原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
隔离性:数据库允许多个并发事务同时对齐数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
(以上内容来自维基百科)
但ACID还是太过抽象,事务到底是怎么创建出来的?下面通过具体的代码来描述下。
一个请求到达服务器之后,springmvc处理过程:
Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)
类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。
…………本质也是AOP(面向切面编程),也就是说符合横切关注点的所有功能都可以放入拦截器实现。