电商项目

声明:此处只是做了以下资料的整合,只作为学习笔记,内容并非自己原创,勿杠
参考资料:
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系统架构
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
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接口,每个接口分别封装各自的业务处理方法。
在这里插入图片描述
MVC:M(model),V(view),C(controller)此处只知道这个概念,之后了解

shop >前言:基于ssm分布式开发实现的电商项目(聚合工程) 注:本项目为开源项目,不能用于商业应用,仅供学习。 ### 使用工具: maven(构建项目),svn(版本控制工具),myeclipse(集成开发环境),nginx(反向代理), FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,price,num,barcode,image,cid,status,created,updated) tb_cat商品分类表(id,parent_id,name,status,sort_order,is_parent,created,updated) tb_item_desc商品描述表(item_id,item_desc,created,updated) tb_item_param商品规格参数表(id,item_cat_id,param_data,created,updated) tb_item_param商品规格参数模板表(id,item_id,param_data,created,updated) tb_order订单表(payment,payment_type,post_fee,status,create_time,update_time,payment_time,consign_time,end_time,close_time,shipping_name,shipping_code,user_id,buyer_message,buyer_nick,buyer_rate) tb_order订单商品表(id,item_id,order_id,num,title,price,total_fee,pic_path) tb_order_shipping订单物流表(order_id,receiver_name,receiver_phone,receiver_mobile,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,created,updated) tb_content_category商品目录分类表(id,parent_id,name,status,sort_order,is_parent,created,updated) tb_content商品目录表(id,category_id,title,sub_title,title_desc,url,pic,pic2,content,created,updated) ## 分布式系统 ### 商品后台管理系统 ### shop-manager(管理后台) 商品的添加功能: 1.商品类目选择-easyui异步tree控件的使用 2.图片上传(fastdfs+nginx) 3.富文本编辑器使用KindEditor 4.分页使用PageHelper插件,插件是基于mybatis的拦截器接口实现的 商品的展示功能: 1.分页插件的使用PageHelper。 2.easyUIDataGrid的使用 ### 前台系统 ### shop-rest(发布服务) ### shop-search(搜索服务) * 使用solr实现搜索,内容列表使用redis缓存,使用zookeeper管理集群 ### shop-sso (单点登录系统) SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中, 用户只需要登录一次就可以访问所有相互信任的应用系统。它包括 可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。 它是目前比较流行的企业业务整合的解决方案之一。 用户登录: 1、接收用户名和密码 2、校验用户名密码 3、生成token,可以使用UUID 4、把用户信息写入redis,key就是token 5、把token写入cookie。 6、返回登录成功需要把token返回给客户端。 Session共享的问题: 1、tomcat做集群配置session复制。如果集群中节点很多,会形成网络风暴。推荐节点数量不要超过5个。 2、分布式架构。拆
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值