SSH面试题总结主要涵盖Spring、Struts和Hibernate这三个框架的核心概念和整合应用。Spring作为一款企业级应用框架,它的核心组件、AOP(面向切面编程)和IOC(控制反转)理念是面试中的常见问题。
Spring的工作机制在于其DispatcherServlet,它是Spring MVC的入口点,负责接收所有请求并分发给合适的Controller。Controller处理业务逻辑后,返回ModelAndView对象,其中包含了视图和数据。接着,DispatcherServlet会借助ViewResolver找到相应的视图来渲染结果并返回给客户端。Spring的AOP使得开发者可以将非业务关注点(如日志、事务管理)分离出来,通过切面应用到对象上,降低代码的复杂性。而IOC则通过容器管理对象及其依赖,允许对象之间的协作无需显式创建,而是由容器负责。
Spring的核心类包括BeanFactory,它是Spring的基础,用于创建Bean的实例。BeanWrapper提供了统一的属性访问接口,方便对Bean的属性进行操作。ApplicationContext是更高级别的容器,它继承了BeanFactory的功能,还提供了框架级别的服务,如消息资源和事件发布。
Struts是MVC框架的表示层部分,主要处理用户界面展示和请求分发。ActionServlet作为Controller,负责接收HTTP请求并根据struts-config.xml配置文件进行处理,Action类则对应具体的业务逻辑。
Hibernate是持久层框架,专注于数据库操作,简化了对象与关系数据库的映射。在SSH整合中,Spring可以与Hibernate协同工作,通过Spring的事务管理来控制数据库操作,避免了直接在Hibernate中处理事务的复杂性。
Spring支持两种事务管理方式:编程式和声明式。声明式事务管理通常更为推荐,因为它更易于维护。Spring的事务隔离级别与JDBC保持一致,包括默认的ISOLATION_DEFAULT,以及更低的ISOLATION_READ_UNCOMMITTED,更高的ISOLATION_SERIALIZABLE等。不同的隔离级别对应不同的并发控制策略,防止出现脏读、不可重复读和幻读等问题。
传播行为定义了在方法调用时如何处理事务。例如,PROPAGATION_REQUIRED会在现有事务中运行,如果没有事务则创建新的;PROPAGATION_REQUIRES_NEW总是启动新事务,即使在已有事务中;而PROPAGATION_SUPPORTS则只在存在事务时支持,否则不开启事务。
SSH面试题涵盖了Spring的IoC、AOP,Struts的MVC架构,以及Hibernate的持久化能力,这些都是Java Web开发中不可或缺的知识点。深入理解和掌握这些内容,对于在面试中展现出扎实的技能基础至关重要。