SSH2经典三层架构
一、层级结构
从职责上来分,ssh2框架分为四层:表示层(action层)、业务逻辑层(service层)、数据持久层(dao层)和域模块层(实体层(entity层))。
1. action层
与JSP页面进行界面交互,负责发送request请求以及接收response响应,根据struts的配置将ActionServlet接收到的Request委派给相应的Action处理。(Action的类由Struts自身创建,也可以由spring在applicationContext配置文件中进行代理)。
2. service层
管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成相应的业务逻辑。
3. dao层
依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
4.entity层(或pojo)
简单的实体类,主要是数据库中表字段名称。
二、框架简介
1. spring
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。在ssh2中,当项目中需要new一个对象的时候,spring可以被动去new一个,它还提供了事务处理,并且利用spring aop能够有效地降低程序的耦合性以及提供代码复用性。
2. struts2
Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化;另外, struts具有页面导航功能,使系统的脉络更加清晰,通过一个配置文件,即可把握整个系统各部分之间的联系,有利于项目的维护。
3. hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
优势:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2、Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程 工作中解放出来,使开发更对象化了。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
三、总结
由于目前ssm框架普及比较广,并且使用ssh2的项目大多基本处于维护状态,不过ssh2也是很经典的一个框架,也是值得我们去学习,去对比。