Spring框架面试:Bean作用域与事务管理
"Java SSM面试题涉及到Spring框架的核心概念,包括Spring Bean的作用域和Spring支持的数据库事务传播属性及隔离级别。" 1、SpringBean的作用域 在Spring框架中,`<bean>`元素的`scope`属性用于定义Bean的作用域,这直接影响到Bean的生命周期和实例化方式。Spring提供了多种作用域: - **Singleton(单例)**:这是默认作用域,Spring会确保在整个应用中只存在一个Bean实例。当IOC容器启动时,或者第一次请求该Bean时,Spring会创建Bean的实例并缓存,后续请求都会返回同一个实例。 - **Prototype(原型)**:在这种作用域下,每次通过容器请求Bean时,都会创建一个新的实例。这适用于需要多个实例的情况,如创建用户对象或会话对象。 其他作用域还包括: - **Request**:在Web应用中,每个HTTP请求创建一个Bean实例。 - **Session**:每个HTTP session对应一个Bean实例。 - **GlobalSession**:在portlet应用中,全局portlet session对应一个Bean实例。 - **Application**:对于ServletContext,只有一个Bean实例。 2、Spring支持的常用数据库事务传播属性 事务传播属性定义了在一个事务方法被另一个事务方法调用时的行为: - **Propagation.REQUIRED**:默认值,如果当前有事务,就在其内部运行,如果没有,就新建一个事务。 - **Propagation.REQUIRES_NEW**:总是新建一个事务,即使在已有事务内部调用,原事务会被挂起。 - **Propagation.SUPPORTS**:如果存在事务,则在其中运行,否则不开启事务。 - **Propagation.NOT_SUPPORTED**:不允许事务,如果有事务,也会被挂起。 - **Propagation.NEVER**:不能在事务内运行,如果在事务中调用,抛出异常。 - **Propagation.MANDATORY**:如果当前存在事务,就在其内运行,否则抛出异常。 - **Propagation.NESTED**:如果存在事务,那么在嵌套事务内运行,否则行为类似于REQUIRED。 3、事务隔离级别 数据库事务的隔离级别决定了并发操作如何相互影响,Spring支持以下几种隔离级别: - **Isolation.DEFAULT**:使用数据库默认的隔离级别。 - **Isolation.READ_UNCOMMITTED**:最低级别,允许脏读、不可重复读和幻读。 - **Isolation.READ_COMMITTED**:防止脏读,但允许不可重复读和幻读。 - **Isolation.REPEATABLE_READ**:防止脏读和不可重复读,但可能出现幻读,MySQL默认级别。 - **Isolation.SERIALIZABLE**:最高级别,防止脏读、不可重复读和幻读,但性能最低。 事务并发问题中的典型现象包括脏读、不可重复读和幻读,这些问题可以通过选择适当的隔离级别来解决。例如,选择`Isolation.READ_COMMITTED`可以避免脏读,但可能导致不可重复读;选择`Isolation.SERIALIZABLE`则可以完全避免这些问题,但可能增加锁竞争,降低并发性能。 总结来说,理解SpringBean的作用域以及事务传播属性和隔离级别对于Java开发者来说至关重要,它们是构建高效、可靠且并发安全的应用的基础。在实际开发中,根据业务需求选择合适的作用域和事务配置,可以有效管理资源,保证数据一致性,并优化应用性能。
下载后可阅读完整内容,剩余6页未读,立即下载
- 粉丝: 28
- 资源: 1844
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景