ssm学习之ssm框架详解

此文章转载:https://blog.csdn.net/khxu666/article/details/79913151css

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应用分红如下几层:java

  • POJO层: 由一组POJO组成,是对系统各类对象的抽象表达。
  • DAO层(mapper): 负责数据库的访问,增、删、改、查等,在MyBatis框架中也常被定义为Mapper层。
  • Service层:由业务逻辑对象组成,是不一样系统的业务逻辑的具体实现。
  • Controller层:由控制器组成,对来自浏览器的用户请求进行拦截,并调用Service层的响应的业务逻辑组件处理用户请求,并转发返回结果到View层。
  • View层:由JSP界面,PDF文档等组件组成,用于显示系统对用户请求的处理结果

其中SSM框架常常把dao包命名为mapper包,并将mybatis框架的xxxMapper.java和xxxMapper.xml文件放到此包中web

 

Java 代码源文件中几个包的做用

包名 名称 做用
DAO 数据访问层(接口) 封装对数据库的操做,与数据操做有关的都放在这里
DTO 数据传输层 用于 service 层与 web 层之间传输,是Entity的一部分或组合
Entity 实体类 通常与数据库的表相对应,封装 dao 层取出来的数据为一个对象
Service 业务逻辑(接口) 写咱们的业务逻辑
Service-Impl 业务逻辑具体实现 实现咱们业务接口,通常事务控制是写在这里
Controller MVC控制器 Spring MVC 就是在这里发挥做用的
Mapper 数据库具体操做 包含 xxxMapper.xml(和xxxMapper.java 两者互相对应

DAO: 里面能够是数据库操做,也能够是文件读写操做,甚至是redis缓存操做。也有人叫作数据持久层。由于Mybatis能够直接在配置文件中实现接口的每一个方法,因此不须要DAOImpl。redis

 

DTO:刚学框架的人可能不明白这个有什么用,其实就是用于service层与web层之间传输,为何不直接用entity(pojo)?其实在实际开发中发现,不少时间一个entity并不能知足咱们的业务需求,可能呈现给用户的信息十分之多;或者一个 Entity 包含的信息过多,咱们须要的信息仅仅是Entity的一部分,为了减小网络传输,这时候就有了dto。 通常咱们使用DTO类来继承entity实体类,在DTO类里放一些业务字段,并提供get、set方法。当咱们在业务逻辑层或者交互层用到一些数据库中不存在的字段时,咱们就须要在DTO类里放这些字段,这些字段的意义就至关于一些经处理过的数据库字段,实质意义就是方便数据交互,提升效率。spring

 

Entity:通常与数据库的表相对应,封装dao层取出来的数据为一个对象,也就是咱们常说的pojo,通常只在dao层与service层之间传输sql

可选的额外包:数据库

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),事务控制。
相关文章
相关标签/搜索