首页 >> 常识问答 >

问ssh 框架搭建步骤 三大组件整合配置详解

2026-11-12 16:57:27

答

ssh 框架是 java web 经典三层整合框架,这里的 ssh 指的是 struts2 spring hibernate 三个框架组合,不是 linux 远程登录的 ssh 协议,很多初学者第一眼容易混淆,ssh 框架核心思想就是分层解耦,struts2 负责控制层,接收前端请求,做参数封装和页面跳转,spring 负责业务层管理,依靠 ioc 容器管理对象,完成事务控制,hibernate 负责持久层,做 orm 对象关系映射,把 java 对象和数据库表互相对应,不需要手写大量原生 sql,搭建 ssh 框架的核心就是把三个框架整合到同一个 web 项目里面,让三层之间可以正常调用,重点解决对象交给 spring 容器管理,struts2 的 action 纳入 spring 管理,hibernate 的数据源和 sessionfactory 交给 spring 统一配置,搭建的时候需要准备对应的 jar 包,编写核心配置文件,配置监听器 过滤器,最后写测试代码验证三层是否打通,这个框架属于传统老项目技术,现在新项目更多使用 springboot 替代,但是很多老企业项目仍然在维护,学习 ssh 可以理解早期 java web 分层思想,搭建过程最容易出错的就是 jar 包版本冲突,配置文件标签写错,事务不生效,action 无法注入 service 这些问题。

三大组件职责对照表

组件层级核心职责
struts2控制层拦截请求 参数校验 分发请求 视图跳转
spring业务层ioc 对象管理 aop 切面 声明式事务管理
hibernate持久层orm 映射 数据库增删改查 自动生成 sql

前期准备工作

第一 开发环境准备,安装 jdk,版本一般选择 jdk1.8,安装 eclipse 或者 idea 开发工具,准备 tomcat 服务器,安装 mysql 数据库,创建好数据库实例

第二 确定 jar 包版本,struts2 spring hibernate 三个框架版本必须兼容,版本跨度太大很容易出现类找不到 方法报错,推荐选择稳定兼容版本组合

第三 新建 web 项目,动态 web 工程,导入全部依赖 jar 包,除了三个框架本身 jar,还需要日志包 数据库驱动包 连接池包,比如 c3p0,这些辅助包不能遗漏

ssh 框架完整搭建步骤

第一步 创建 web 项目,配置项目的 web.xml,这个是整合的入口,在 web.xml 里面配置 spring 的上下文监听器,让项目启动的时候自动加载 spring 配置文件 applicationContext.xml,同时配置 struts2 核心过滤器 strutsPrepareAndExecuteFilter,所有前端请求都会经过这个过滤器

第二步 编写 spring 核心配置文件 applicationContext.xml,配置数据源,填写数据库地址 账号密码,配置 hibernate 的 sessionFactory,把 hibernate 相关属性写在这里,比如数据库方言 是否显示 sql 自动建表策略,同时配置声明式事务管理器,开启事务注解或者 xml 事务配置

第三步 编写实体类,编写 hibernate 映射文件 hbm.xml,或者使用注解方式,建立 java 实体类和数据库表的映射关系,定义主键 字段类型 关联关系,完成 hibernate 持久层基础配置

第四步 编写 dao 层,基于 hibernate 的 hibernateDaoSupport 封装基础增删改查方法,dao 对象交给 spring ioc 容器管理

第五步 编写 service 业务层接口和实现类,service 里面调用 dao,业务类注册到 spring 容器,事务控制配置在 service 层方法上,保证业务操作数据库的时候事务正常提交或者回滚

第六步 编写 struts2 的 action,action 作为控制层,调用 service,这里重点配置 action 交给 spring 管理,不要让 struts2 自己 new action 对象,这样才能实现 service 注入

第七步 编写 struts.xml 配置文件,配置 action 映射,设置请求路径 类名 方法,配置结果视图,定义成功失败跳转页面

第八步 编写前端页面,jsp 页面,写表单提交请求,测试请求能否到达 action,action 能否调用 service,service 能否调用 dao 完成数据库读写

第九步 部署项目到 tomcat,启动服务器,访问测试地址,观察控制台日志,检查是否有版本冲突 注入失败 事务异常,逐步排错

深度整合关键点

第一 action 交给 spring 管理,struts2 默认会自己实例化 action,整合 ssh 之后要改成 spring 容器创建 action,这样 @Autowired 注入 service 才可以生效,如果还是 struts2 自己 new action,service 就是空指针报错,这是 ssh 搭建最高频错误

第二 事务位置,ssh 事务统一配置在 spring,绑定在 service 层,不要把事务写在 dao 层,一个业务方法包含多次数据库操作,保证全部成功才提交,失败整体回滚

第三 hibernate 会话管理,spring 整合 hibernate 之后,不需要手动打开关闭 session,由 spring 的事务管理器统一管理 session,避免 session 泄漏

第四 版本兼容,struts2 旧版本存在安全漏洞,spring hibernate 版本搭配要测试,不同大版本之间 api 有改动,复制老教程代码可能编译报错

常见搭建报错方向

第一 classnotfoundexception,一般是 jar 包缺失或者版本冲突

第二 action 注入 service 空指针,原因是 action 没有交给 spring 管理

第三 事务不回滚,事务传播配置错误,或者异常类型没有被 spring 捕获

第四 hibernate 方言配置错误,sql 执行报错,不同 mysql 版本要选择对应的 hibernate 方言

综合来看,ssh 框架搭建本质就是 web.xml 做入口,spring 统一管理数据源 sessionfactory 事务,struts2 负责请求分发,hibernate 负责 orm 持久化,三层组件打通,核心难点就是整合配置,让对象由 spring 统一托管,搭建完成之后可以实现请求进入控制层,调用业务层,业务层调用持久层操作数据库,理解这个调用链路,就算老项目维护排错也会更加轻松。

【常见问题】

问题 1 ssh 框架搭建步骤里面 ssh 是远程登录协议吗

回答 1 ssh 框架搭建步骤里面 ssh 不是 linux 远程登录协议,ssh 框架搭建步骤指 struts2 spring hibernate 三个 java web 框架整合,和 ssh 远程登录协议只是缩写相同。

问题 2 ssh 框架搭建步骤中 action 为什么要交给 spring 管理

回答 1 ssh 框架搭建步骤里面 action 交给 spring 管理,ssh 框架搭建步骤这样配置之后才可以自动注入 service,否则 struts2 自行创建 action 对象,调用 service 会出现空指针。

问题 3 ssh 框架搭建步骤事务应该配置在哪一层

回答 1 ssh 框架搭建步骤事务统一配置在 spring 的 service 业务层,ssh 框架搭建步骤不推荐把事务放在 dao 层,保证整个业务操作数据库统一提交或者回滚。

问题 4 ssh 框架搭建步骤 jar 包版本需要考虑兼容吗

回答 1 ssh 框架搭建步骤必须考虑三个框架 jar 包版本兼容,ssh 框架搭建步骤版本差距过大,会出现类找不到 方法不存在等整合报错。

【免责申明】

本文内容仅作为 ssh 框架搭建步骤的学习参考,ssh 属于传统老旧技术框架,不同版本 api 和配置标签存在差异,正式项目请参考对应版本官方文档,因版本选择或者配置错误造成项目启动异常,由开发者自行承担。

 

相关阅读

最新文章