电商项目

声明:此处只是做了以下资料的整合,只作为学习笔记,内容并非自己原创,勿杠
参考资料:
https://blog.csdn.net/Phoenix_tgd/article/details/79677098
https://blog.csdn.net/Summer_And_Opencv/article/details/96151765?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158812465619724835817141%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57662%2522%257D&request_id=158812465619724835817141&biz_id=0&utm_source=
https://blog.csdn.net/qq_41647999/article/details/83314842

SSM系统架构
电商项目_第1张图片
电商项目_第2张图片

电商项目_第3张图片
com.zm.controller存放的是XXController.java 这个也就是传说中的控制层
com.zm.dto 存放的是XXDto.java 这个也就是实体Model
com.zm.interceptor存放的是XXHandler.java
com.zm.mapper存放的是XXMapper.java (接口,只有方法名字)以及XXMapper.xml (具体实现,sql语句)
com.zm,pojo存放的是POJO也就是普通对象(私有属性,公有方法),也就是实体
com.zm.service存放的是XXService.java(接口)
com.zm.service.imp存放的是XXServiceImp.java 上面XXService接口的实现类
com.zm.util
Constant 里面类存放的是静态常量public static final

业务逻辑:
Controller->service接口->serviceImpl->dao接口->daoImpl->mapper->db

相应进行讲解:

  1. DAO(Data Access Object):数据存储对象= Mapper
    不管是什么框架,我们很多时候都要和数据库进行交互。如果遇到一个场景我们都要去写SQL语句,那么我们的代码就会很冗余。所以,我们就想到了把数据库封装一下,让我们的数据局打交道看起来就像和一个对象打交道,这个对象通常就是DAO。当我们操作这个对象的时候,这个对象会自动产生SQL语句来和数据库进行交互,我们只需要使用DAO就行了。
    通常我们在DAO层里面写接口,里面有和数据打交道的方法。SQL与通常写在mapper文件里面的。
    会调用到dto
    优点:结构清晰,DAO层的数据源配置以及相关的有关数据库连接的参数都在Spring配置文件中进行配置
  2. Service服务(业务逻辑层)
    服务是一个相对独立的功能模块,主要负责业务逻辑应用设计。首先也要设计接口,然后再设计其实现该接口的类。这样我们就可以 在应用中调用service接口进行业务处理。service接口进行业务处理。service层业务实现,具体调用到已经定义的DAO的接口,封装service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性。
    如果把DAO层当做是积木,则Service层则是对积木的搭建
    会调用到dto
  3. Controller控制器(控制层)
    相当于MVC的C层。主要是负责具体业务模块流程的控制,此层调用到Service层的接口去控制业务流程,也可以接收前端的参数进行业务操作。控制的配置同样在Spring配置文件中配置。针对不同的业务流程有不同的控制器。在设计的过程中可以设计出重复利用的子单元模块。
    会调用到dto
  4. Model模型(数据模型层)
    模型就是指视图的数据模型,相当于MVC的M层,存放实体类,与数据库中的属性值基本保持一致。通常来说,我们会把模型和另一个东西放在一起来说:View,视图。
    模型通常认为是视图的内核,何谓之视图?我们正在与之交互的网站界面就是视图,而模型是指他的内核:数据。
    将Model和View的概念拆分开来,有助于我们关注不同的方面,也可以更有效的分工。有些工程师更关注内核也就是模型,通常来说,他们被称为后端工程师。有些工程师更关注用户界面的交互和展示,通常来说,他们被称之为前端工程师。
  5. View层。
    与Controller层关系紧密,View层主要负责前台jsp页面的表示

他们之间的关系:
实体类这一层,有的开发写成POJO,有的写成Model,也有domain,也有dto(这里做参数验证,比如password不能为空等)。
Mapper是Mybatis操作数据库的那一层 ,就是dao层。
service包含了serviceImpl(service接口的实现类)是提供给controller使用的,针对于某些业务将dao的对于某些表的crud(增删改查)进行组合,也就是说间接的和数据库打交道
controller通过调用service来完成业务逻辑
建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。
电商项目_第4张图片
MVC:M(model),V(view),C(controller)此处只知道这个概念,之后了解

你可能感兴趣的:(java,项目管理)