大家好,我是鸭鸭!
又到周一,新的一周新的摸鱼,今天鸭鸭也在高强度互联网冲浪,没想到刷到这么一条帖子:
一般来说,很多大公司入职流程中都会包含背调,大家也都习惯了会准备好相应的信息。但京东这波操作,既要前任领导联系方式,还要内部职级截图;既要社保缴纳登记,还要近两年每月的社保缴纳信息;不仅如此,还要求提供多位前公司同事联系信息进行核实,这属实是让打工人无法接受。
评论区还有一位被京东过度背调的"受害者"发言:
公司背调的目的应该是核实应聘者提供信息的真实性,避免发生简历造假的情况,像东子这种过分收集索取个人信息,还要反复多人电话核实,恨不得把你的职业生涯都翻出来的,还是不常见的。
过分索取个人隐私信息的背调,不止是楼主觉得不被尊重,鸭鸭看着也很生气。
大家也可以来评论区分享自己遇到或者听过的奇葩背调经历,现在打工人求职已经很难了,希望大家都可以维护好自己的权益。
来看看鸭鸭今天为大家准备的面试题,一起来提升自己的就业竞争力吧!
Spring 事务在什么情况下会失效?
回答重点
一般而言失效的情况都是用了声明式事务即 @Transactional 注解,如果使用了这个注解那么在以下几个情况下会导致事务失效:
1)rollbackFor 没设置对,比如默认没有任何设置(RuntimeException 或者 Error 才能捕获),则方法内抛出 IOException 则不会回滚,需要配置 @Transactional(rollbackFor = Exception.class)
。
2)异常被捕获了,比如代码抛错,但是被 catch 了,仅打了 log 没有抛出异常,这样事务无法正常获取到错误,因此不会回滚。
3)同一个类中方法调用,因此事务是基于动态代理实现的,同类的方法调用不会走代理方法,因此事务自然就失效了。
4)@Transactional 应用在非 public 修饰的方法上,Spring 事务管理器判断非公共方法则不应用事务。
5)@Transactional 应用在 final 和 static 方法上,因为 aop (Spring Boot2.x版本默认是 cglib,Spring 自身默认是 jdk,一般现在用的都是 SpringBoot)默认是 cglib 代理,无法对 final 方法子类化。static 是静态方法,属于类,不属于实例对象,无法被代理!
6)propagation 传播机制配置错误,例如以下的代码
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void addUserAndAddress(User user,Address address) throws Exception {
userMapper.save(user);
addAddress(address);
}
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void addAddress(Address address) {
addressMapper.save(address);
}
因为配置了 Propagation.REQUIRES_NEW,是新起了一个事务,即 addAddress 的事务和 addUserAndAddress 其实不是一个事务,因此两个事务之间当然就无法保证数据的一致性了。
7)多线程环境,因为 @Transactional 是基于 ThreadLocal 存储上下文的,多线程情况下每个线程都有自己的上下文,那么之间如何保持事务同步?保持不了,因此事务失效。
8)用的是 MySQL MyISAM,这个引擎本身不支持事务!
最后
再来推荐下我们的面试刷题网站和小程序:面试鸭!