Spring与Hibernate整合及面试常考知识点
5星 · 超过95%的资源 需积分: 10 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开发中的复杂架构有重要作用。
高新普惠_搬砖手
- 粉丝: 114
- 资源: 9
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器