Java SSM面试精华:Spring Bean详解与事务管理

需积分: 0 1 下载量 118 浏览量 更新于2024-08-03 收藏 363KB DOCX 举报
在Java SSM(Spring-Struts-SpringMVC)框架的面试中,面试官可能会关注以下几个关键知识点: 1. **Spring Bean的生命周期管理**: Spring的Bean对象从创建到销毁的过程经历了以下阶段: - **解析配置**: Spring通过XML配置文件或注解方式解析BeanDefinition,这是Bean的蓝图。 - **实例化**: 根据BeanDefinition反射地创建Bean对象。 - **属性填充**: 通过Aware接口(如BeanNameAware、ApplicationContextAware等)设置Bean的名称和其他依赖属性。 - **初始化**: 调用BeanPostProcessor的初始化前和初始化方法(如preInitialization和afterPropertiesSet),在此过程中可能执行AOP(面向切面编程)操作。 - **存储和注入**: 将创建的Bean放入Spring容器的bean作用域中供后续业务层访问。 - **业务使用**: 作为业务逻辑的一部分,Bean对象被调用执行其功能。 - **生命周期结束**: 当Spring容器关闭时,Spring会调用DisposableBean的destroy()方法,清理资源。 2. **Spring Bean的作用域**: - Singleton(默认): 单例模式,确保在整个应用程序中有且只有一个实例,适用于大部分场景。 - Prototype: 每次请求或方法调用时都创建新的实例,适合频繁创建和销毁的对象。 - Request/Session: HTTP请求期间存在,Request作用域的Bean在请求结束后销毁,Session作用域的Bean在用户会话结束时销毁。 - Global-Session (Portlet-specific): 在Portlet Web应用中使用,Spring 5已移除,只在特定上下文中有意义。 3. **Spring的事务管理**: - **事务传播行为**: TransactionDefinition接口定义了5种传播行为,如PROPAGATION_REQUIRED(如果当前有事务,则加入,如果没有则新建)、PROPAGATION_SUPPORTS(不在事务中运行,但能感知存在的事务)等,用于控制子事务的行为。 - **事务隔离级别**: 提供了5个预设的隔离级别,包括ISOLATION_DEFAULT(依赖数据库默认级别)、ISOLATION_READ_UNCOMMITTED(最低,允许脏读等)、ISOLATION_READ_COMMITTED(默认,避免脏读)、ISOLATION_REPEATABLE_READ(可重复读,防止幻读)和ISOLATION_SERIALIZABLE(串行化,最安全但性能较差)。 面试者在准备这些内容时,应理解Spring如何管理bean的生命周期,以及如何利用其灵活的事务管理特性来保证数据的一致性和安全性。同时,熟悉不同作用域的应用场景有助于面试者更好地解答面试问题。掌握这些知识点,将有助于你在SSM架构的面试中展示出扎实的Java基础和框架理解能力。