SSH框架面试精讲:Java Struts Hibernate Spring重点解析

4星 · 超过85%的资源 需积分: 9 73 下载量 65 浏览量 更新于2024-10-13 收藏 53KB DOC 举报
"SSH常见面试题,包括Struts、Hibernate、Spring相关的问题,涵盖了MVC模式、Struts的关键对象、Hibernate的查询方式、load与get的区别、Spring的事务管理及隔离级别和传播行为等核心概念。" 在Java Web开发中,SSH(Struts、Hibernate、Spring)是一个经典的开发框架组合。下面将深入讲解这些面试题所涉及的知识点: 1. MVC模式:MVC(Model-View-Controller)是一种设计模式,用于分离业务逻辑、视图展示和用户交互。在Struts中,Model通常由JavaBean或EJB组件(或简单的POJO)实现,负责业务数据的存储和处理;Controller由Action类实现,接收用户的请求并调用相应的业务逻辑;View则是一组JSP文件和标签,用于显示结果。 2. Struts中的关键对象: - Action:控制器类,处理用户的请求,并调用模型进行业务处理。 - ActionForm:表单对象,通常对应HTML表单的数据,负责在Action和视图之间传递数据。 - DynaValidatorForm:动态表单,提供更灵活的数据绑定和验证功能。 - ActionMapping:配置文件中的action节点信息,定义了请求如何映射到Action类。 3. Hibernate查询数据的方式: - HQL(Hibernate Query Language):面向对象的查询语言,类似于SQL,但操作对象而非表。 - SQL查询:直接执行SQL语句,可以访问数据库的所有功能。 - 条件查询:通过Criteria或Query API进行查询,更抽象且与数据库无关。 4. load()与get()的区别: - load():假设对象一定存在,返回一个代理对象,首次访问其属性时才加载数据。如果数据库中不存在记录,会抛出ObjectNotFoundException。 - get():首先检查一级缓存,然后二级缓存,最后数据库。若找不到,则返回null。 5. Spring事务管理: - 声明式事务:通过@Transactional注解在方法上声明事务边界,由Spring容器自动管理。 - 编程式事务:使用PlatformTransactionManager接口手动管理事务开始、提交、回滚等操作。 事务隔离级别: - DEFAULT:使用数据库默认的隔离级别。 - READ_UNCOMMITTED:最低级别,可能出现脏读、不可重复读和幻影读。 - READ_COMMITTED:防止脏读,但可能有不可重复读和幻影读。 - REPEATABLE_READ:防止脏读和不可重复读,但可能有幻影读。 - SERIALIZABLE:最高级别,防止所有并发问题,但性能开销大。 事务传播行为: - REQUIRED:默认行为,有事务就加入,无则新建。 - SUPPORTS:有事务则加入,无则不创建事务。 - MANDATORY:必须有事务,否则抛异常。 - REQUIRES_NEW:总是新建事务,原有事务被挂起。 - NOT_SUPPORTED:不支持事务,有事务则挂起。 - NEVER:不允许在事务中运行,有事务则抛异常。 - NESTED:嵌套事务,如果已有事务,则在其中开启子事务,否则新建事务。 6. Spring的其他特性:Spring还提供了依赖注入、AOP(面向切面编程)、Bean管理、JDBC模板、DAO支持、Web应用集成等多种功能,极大地简化了Java应用的开发和维护工作。在面试中,理解并能够阐述这些核心概念是至关重要的。