Spring与Hibernate整合及面试常考知识点

5星 · 超过95%的资源 需积分: 10 19 下载量 30 浏览量 更新于2024-10-21 收藏 36KB TXT 举报
“SSH(Struts、Spring、Hibernate)笔试题” 这篇资料主要涵盖了Struts、Spring和Hibernate三个框架在面试或笔试中可能出现的常见问题。SSH是Java Web开发中常用的技术栈,Struts用于处理MVC模式中的控制器部分,Spring则是一个全面的后端解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模板方法等,而Hibernate则是一个强大的对象关系映射(ORM)工具,简化了数据库操作。 1. Struts 1与Struts 2流程: - Struts 1流程:用户请求到达ActionServlet,ActionServlet根据配置文件决定调用哪个Action,Action执行业务逻辑后返回一个ActionForward,DispatcherServlet负责转发到对应的JSP页面。 - Struts 2流程:请求先经过FilterDispatcher,然后匹配Action Mapping,执行Action,最后通过Result机制渲染视图。 2. Spring 的核心特性: - 依赖注入(DI):允许组件之间松耦合,Spring容器负责管理对象的生命周期和依赖关系,可以通过构造器注入或setter方法注入实现。 - 面向切面编程(AOP):提供了声明式事务管理、日志记录等功能,可以在不修改业务代码的情况下添加横切关注点。 - 模板方法:Spring提供了诸如JdbcTemplate、HibernateTemplate等模板类,简化了数据库操作。 3. Spring 实现DI的方式: - 构造器注入:通过构造函数传入依赖对象。 - Setter注入:通过setter方法设置依赖对象。 - 注解注入:使用@Autowired、@Qualifier等注解标记依赖。 4. Spring 的IoC容器: - IoC容器负责创建和管理对象,以及它们之间的依赖关系。它可以通过XML配置文件、注解或者Java配置类来定义对象及其依赖。 5. Spring 与Hibernate整合: - Spring提供数据源(DataSource)和SessionFactory的配置,可以使用HibernateDaoSupport基类或HibernateTemplate来简化DAO层的开发。 - Spring的事务管理:支持编程式和声明式事务管理,可以使用transactionTemplate或transactionProxyFactoryBean进行事务控制。 6. Spring JNDI数据源: - Spring可以使用JNDIObjectFactoryBean获取JNDI中的数据源,也可以使用DriverManagerDataSource直接配置数据库连接。 7. Spring 在Web应用中的配置: - 在web.xml中配置监听器(listener-class),例如ApplicationContextLoaderListener,以便加载Spring应用上下文。 8. Spring 事务传播行为: - 当一个事务方法被另一个事务方法调用时,需要指定事务的传播行为,如REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED等。 9. Spring 实现事件监听: - 可以通过实现ApplicationListener接口监听应用程序事件,或者扩展ApplicationEventMulticaster自定义事件分发。 10. Spring 获取资源: - 使用ApplicationContext的getResource方法可以获取类路径、Web应用路径或系统文件路径下的资源。 11. Spring Bean工厂: - BeanFactory是Spring容器的基础接口,可以用来实例化和管理Bean。而ApplicationContext除了BeanFactory的功能外,还提供了更多的企业级服务,如消息源、事件支持等。 这些知识点涵盖了SSH框架的核心概念和使用方式,对于理解Java Web开发中的复杂架构有重要作用。