SSH面试必备知识:Hibernate工作原理与缓存体系

需积分: 9 1 下载量 186 浏览量 更新于2024-09-11 收藏 204KB DOC 举报
"SSH面试题总结,包括Spring、Hibernate、Struts相关问题及答案,适合Java程序员面试准备。" 在Java SSH(Spring、Struts、Hibernate)面试中,面试官通常会关注候选人的技术理解深度和实践经验。以下是针对SSH框架的一些核心知识点: 1. **Hibernate** 是一个流行的Java持久化框架,它简化了数据库操作。面试中可能会问到以下问题: - **工作原理**: - Hibernate通过读取`hibernate.cfg.xml`配置文件来初始化,并创建`SessionFactory`。 - `Configuration`实例负责加载配置信息和映射信息。 - `SessionFactory`创建后,可以用来创建`Session`,提供与数据库交互的接口。 - `Session`提供了多种操作,如CRUD(创建、读取、更新、删除)以及事务管理。 - **缓存体系**: - **一级缓存**:每个`Session`内部都有一个缓存,存储了当前工作单元加载的对象,只对当前`Session`可见。 - **二级缓存**:这是`SessionFactory`级别的,可以跨`Session`共享,是可插拔的缓存解决方案,用于提高性能。 - **SessionFactory缓存**:包含映射元数据和预定义的SQL语句。 - **Java对象状态**: - **临时状态(transient)**:对象未保存到数据库,不在`Session`缓存中,由`new`操作创建或`Session.delete()`后进入此状态。 - **持久化状态(persistent)**:对象已保存到数据库,与`Session`关联,修改会被跟踪。 - **游离状态(detached)**:对象从`Session`中分离出来,但已在数据库中有记录,需要手动管理其状态。 2. **Spring** 是一个全面的企业级应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能。面试中可能涉及的问题: - **依赖注入**:Spring如何管理对象间的依赖关系,如何通过XML配置或注解实现对象的生命周期控制。 - **AOP**:如何通过切面实现横切关注点,如日志、事务管理等。 - **Spring MVC**:Spring处理HTTP请求的模式,包括控制器、模型、视图和处理器映射器的角色。 3. **Struts** 是一个MVC框架,常与Spring一起使用。面试中可能关注: - **Action**:处理用户请求的核心组件,通常与业务逻辑交互。 - **Struts配置**:struts-config.xml文件中的配置元素,如ActionMapping和FormBean定义。 - **拦截器(Interceptor)**:Struts2中的一个重要概念,可以扩展功能,如日志、权限验证等。 对于这些框架,面试者还需要熟悉它们的优缺点、使用场景、与其他框架的集成方式,以及最新的版本特性。例如,Spring Boot的出现简化了Spring的应用启动和配置,而Hibernate的ORM能力在JPA的流行下也有所发展。同时,面试者还应准备解决实际开发中遇到的问题,如性能优化、异常处理和调试技巧。理解这些核心概念和实践经验将对SSH面试有极大的帮助。