ssm学习之ssm框架详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ssm学习之ssm框架详解
此⽂章转载:
Java Web常见的三层结构
表现层:也就是Web层,常见的框架有Spring MVC、Struts2 ,并包括⽤于展⽰的界⾯,如JSP界⾯;
业务层:Service层,专注于业务逻辑的实现;
持久层:也叫Dao层,常见的框架是Hibernate、MyBatis。

负责与数据库的交互,封装数据库的访问细节;从数据库表中读取加载数据并实例化领域对象(Domian Object)也就是从数据库中读取数据,或者返过来将领域对象实例化到数据库中,也就是将数据写⼊到数据库中。

当服务器接受到来时浏览器的请求后,web层⾸先开始⼯作,根据不同的请求创建相应的servlet对请求进⾏处理转发,业务层在收到来⾃web 层的信息之后,调⽤持久层,持久层访问数据库后得到返回结果,经过业务层将返回结果填充到显⽰界⾯中(JSP中),web层将Jsp界⾯作为浏览器请求的响应结果返回到浏览器。

三层结构在SSM框架中的体现
在⽤Java开发互联⽹应⽤时,SSM框架(Spring + Spring MVC + MyBatis)成为了越来越主流的选择。

在轻量级的开发中,常对Web应⽤分成以下⼏层:
POJO层:由⼀组POJO组成,是对系统各种对象的抽象表达。

DAO层(mapper):负责数据库的访问,增、删、改、查等,在MyBatis框架中也常被定义为Mapper层。

Service层:由业务逻辑对象组成,是不同系统的业务逻辑的具体实现。

Controller层:由控制器组成,对来⾃浏览器的⽤户请求进⾏拦截,并调⽤Service层的响应的业务逻辑组件处理⽤户请求,并转发返回结果到View层。

View层:由JSP界⾯,PDF⽂档等组件组成,⽤于显⽰系统对⽤户请求的处理结果
其中SSM框架经常把dao包命名为mapper包,并将mybatis框架的xxxMapper.java和xxxMapper.xml⽂件放到此包中
Java 代码源⽂件中⼏个包的作⽤
包名名称作⽤
DAO数据访问层(接⼝)封装对数据库的操作,与数据操作有关的都放在这⾥
DTO数据传输层⽤于 service 层与 web 层之间传输,是Entity的⼀部分或组合
Entity实体类⼀般与数据库的表相对应,封装 dao 层取出来的数据为⼀个对象
Service业务逻辑(接⼝)写我们的业务逻辑
Service-Impl业务逻辑具体实现实现我们业务接⼝,⼀般事务控制是写在这⾥
Controller MVC控制器Spring MVC 就是在这⾥发挥作⽤的
Mapper数据库具体操作包含 xxxMapper.xml(和xxxMapper.java ⼆者互相对应
DAO:⾥⾯可以是数据库操作,也可以是⽂件读写操作,甚⾄是redis缓存操作。

也有⼈叫做数据持久层。

因为Mybatis可以直接在配置⽂件中实现接⼝的每个⽅法,所以不需要DAOImpl。

DTO:刚学框架的⼈可能不明⽩这个有什么⽤,其实就是⽤于service层与web层之间传输,为什么不直接⽤entity(pojo)?其实在实际开发中发现,很多时间⼀个entity并不能满⾜我们的业务需求,可能呈现给⽤户的信息⼗分之多;或者⼀个 Entity 包含的信息过多,我们需要的信息仅仅是Entity的⼀部分,为了减少⽹络传输,这时候就有了dto。

⼀般我们使⽤DTO类来继承entity实体类,在DTO类⾥放⼀些业务字段,并提供get、set⽅法。

当我们在业务逻辑层或者交互层⽤到⼀些数据库中不存在的字段时,我们就需要在DTO类⾥放这些字段,这些字段的意义就相当于⼀些经处理过的数据库字段,实质意义就是⽅便数据交互,提⾼效率。

Entity:⼀般与数据库的表相对应,封装dao层取出来的数据为⼀个对象,也就是我们常说的pojo,⼀般只在dao层与service层之间传输
可选的额外包:
Exception:⾃定义异常。

Utils,即utility,⼯具辅助层,⼀组通⽤的代码集合,⽐如处理多语⾔功能,⽹站⾮法信息过滤等等功能的代码集;
resource:存放后端配置⽂件
配置⽂件名称内容
spring-dao.xml spring数据连接配置配置数据库连接池、sqlSessionFactory对象,扫描DAO接⼝
spring-service.xml spring 服务配置扫描service包下注解、配置事务管理器、基于注解的事务
spring-mvc.xml spring MVC 配置开启框架注解模式、处理静态资源、配置jsp、扫描Controller
jdbc.properties数据库连接参数配置 JDBC、数据库url、⽤户名、密码等
mybatis-config.xml mybatis 配置⽂件开启⾃增主键、使⽤列别名、驼峰转换
log4j.properties web ⽇志输出参数web ⽇志输出参数
applicationContext.xml Spring与mybatis整合配置配置数据库连接池、sqlSessionFactory对象,扫描DAO接⼝
webapp:前端页⾯与配置⽂件
存放jsp、css等静态⽂件,web.xml 配置⽂件主要包含:
配置 Spring 需要加载的配置⽂件、启⽤ disapatcher 转发处理所有的请求、指定编码格式
关于⼏个包之间的关系
controller 包是 Spring MVC 的主要⽂件,其中对来⾃浏览器的各种请求进⾏转发和处理。

在 controller 中会内置各种 Service 包中的对象,当接收到新的请求的时候,解析 url ,根据注解调⽤相应的服务来完成请求。

entity 包常常与数据库中的表⼀⼀对应,dao 包中定义了数据库的基本操作,并在 mapper 包中的 xml 配置⽂件中完成数据操作的具体实现(也就是增、删、改、查)。

Mybatis 可以实现 dao 与 .xml 的⾃动匹配,这时候就需要把 xxxMapper.xml 和 xxxMapper.java 放在同⼀个包内。

在 Service 包中定义了各种服务的接⼝,然后在 Service-Impl 包中对接⼝进⾏实现,在实现接⼝的时候会内置⼀个 DAO 包中的对象(因为web 服务的实现肯定是涉及到数据访问的,⽽数据访问被抽象成了 DAO 包中的对象,所以服务的实现必须借助 DAO 包),然后我们借助DAO 中的对象所实现的各种数据访问处理⽅法来实现具体的服务。

SSM框架中各框架的作⽤
MyBatis:持久层框架,负责数据库访问。

Spring MVC:表现层框架,把模型、视图、控制器分离,组合成⼀个灵活的系统。

Spring:整合项⽬的所有框架,管理各种Java Bean(mapper、service、controller),事务控制。

相关文档
最新文档