跳到正文
Arlen

```sql – 显示加Innodb锁的两种方式 select … lock in share mode:加 S 锁 select … for update:加 X 锁

引语:Spring对事务的嵌套调用有专门的传播机制,有时只从字面上理解往往会误入歧途,下面对传播机制做了详细讲解。

  • REQUIRED 如果当前没事务,就新建一个事务,如果已经存在一个事务,则加入到这个事务中,这个是Spring默认的传播机制;
  • SUPPORTS 支持当前事务,如果没有事务就以非事务方式执行;
  • MANADATORY 使用当前事务,如果当前没有事务,就抛出异常;
  • REQUIRES_NEW 新建事务,如果当前存在事务,则将当前事务挂起
  • NOT_SUPPORTED 以非事务方式执行,如果当前存在事务,则将当前事务挂起
  • NEVER 以非事务方式执行,如果当前存在事务,则抛出异常;
  • NESTED 如果当前存在事务,则在嵌套事务中执行,如果当前没有事务,则执行跟REQUIRED相似的操作。

引语: Spring声明式事务,将业务代码和事务分离,让我们开发人员专注于业务代码开发,带来了极大的便利,然而,有时候不知道其实现原理,随便乱用会导致各种各样的问题。

问题

比如本系统调用系统A 10个服务,然后properties文件中配置了10个url,每个url有相同的ip:port,每次修改都会很麻烦。将相同的ip:port抽出来单独配置,其他用诸如${hostname}代替,然后让maven的filter自动替换即可。更有甚者,可以指定不同的文件,让maven编译时用properties中的值取替换。