Java教程

Java面试题

本文主要是介绍Java面试题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Spring

Spring中的Bean是否线程安全

1.如果Bean是⽆状态的,那么Bean则是线程安全的(没有共享修改操作)
2.如果Bean是有状态的,那么Bean则不是线程安全的
:Bean只是一个概念,Bean是否线程安全,应看对应的对象(Bean对象)是否线程安全,有没有共享操作,是否修改。

BeanFactory和ApplicationContext区别

Spring 框架带有两个 IOC 容器—— BeanFactory和ApplicationContext。BeanFactory是 IOC 容器的最基本版本,ApplicationContext扩展了BeanFactory的特性。

spring事务的传播

  • 按照编写代码时定义的传播机制进行传播 @Transactional(propagation=Propagation.REQUIRED // propagation 枚举值)
  • spring事务的7大传播机制(a.b)
    • PROPAGATION_REQUIRED(spring默认值):如果a存在一个事务,则b支持当前事务。如果a没有事务则b开启一个新的事务。
    • PROPAGATION_SUPPORTS:如果a存在一个事务,b支持当前事务。如果a没有事务,则b非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。
    • PROPAGATION_MANDATORY:如果a存在一个事务,b支持当前事务。如果a没有一个活动的事务,则抛出异常。
    • PROPAGATION_REQUIRES_NEW:b总是开启一个新的事务。如果a已经存在事务,则将a的事务挂起。
    • PROPAGATION_NOT_SUPPORTED:b总是非事务地执行,并挂起a存在的任何事务。
    • PROPAGATION_NEVER:b总是非事务地执行,如果a存在一个活动事务,则抛出异常。
    • PROPAGATION_NESTED:如果a有一个活动的事务存在,则b运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。
这篇关于Java面试题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!