文章目录
spring bean的作用域
代码
创建一个book的bean,然后更改他的scope属性。
默认加载容器就会创建对象,调用book对象的无参构造方法。
可以验证一下是不是默认单例。
spring支持的常用数据库事务传播属性和事务隔离级别
传播属性(传播行为)
常用前两个。比如结账场景中的单个商品的购买方法。
测试场景:100块钱,买两本书,总价为110元。肯定会失败的。
默认是required,是一本书都不会成功的,发生失败,作为一个整体的事务回滚。
如果想成功一个,就要改成requires_new,会创建新事务,而不是加入事务,两个事务之间互相隔离。
required
requirs_new
隔离级别
事务并发问题
脏读理解:当前事务读到了其他事务更新但是没提交的值。
隔离级别
隔离级别并不是越高越好,因为隔离级别高了性能就差。
mysql默认可重复读的理解:一个事务中,对一个值对读取,读几次都是一样对,不管别的事务有没有对这个值进行修改。
隔离级别解决并发问题一览
从上往下,依次全部解决问题