Day92 Java项目 (SSM+Dubbo)商城(一)

需求分析与系统设计

一.需求分析

  1. 一个全品类B2C电商平台,包含网站前台和管理后台两大部分。网站前台包含主站频道(首页、搜索、购物车及支付)、用户中心、秒杀、优惠券等频道。管理后台包含商品、订单、库存、用户、运营、统计、财务、设置等功能。

二.系统设计

  1. 数据库分库设计
    (1)商品库 qingcheng_goods
    (2)订单库 qingcheng_order
    (3)基础设置库 qingcheng_config
    (4)运营库 qingcheng_business
    (5)用户库 qingcheng_user
    (6)系统库qingcheng_system
    (7)支付库 qingcheng_pay
    (8)短信库 qingcheng_sms
  2. 技术选型
    主框架技术:SSM(通用mapper)+Dubbo
    前端技术: 网站后台 Vue.js+ElementUI 网站前台采用Vue.js 和模板技术 thymeleaf
    消息中间件技术: RabbitMQ
    搜索中间件技术: elasticsearch
    缓存中间件技术: redis
    报表插件: echars
    安全框架:SpringSecurity
    单点登录中间件 :CAS
  3. 系统架构图

通用mapper

一.简介

  1. 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增
    删改查操作以及Example相关的单表操作。为什么要用通用mapper?我们这里列举一下
    原生Mybatis的痛点:
    1. mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改
    2. 需要自己实现sql分页,select * from table where . . . limit 1,3自己手写分页,除了传参page、pageSize,还需要返回条目总数count。
    3. 数据库可移植性差:如果项目更换数据库,比如oracle-->mysql,mapper.xml中的
      sql要重新写,因为Oracle的PLSQL 和mysql 支持的函数是不同的。
    4. 生成的代码量过大。
    5. 批量操作,批量插入,批量更新,需要自写。
      而这些,通过通用mapper就可以很轻松的解决了。

二.快速入门

  1. 通用mapper与Spring集成
    通用mapper的三种使用方式 ,纯java使用方式、与Spring集成方式、与SpringBoot集成方式。
    (1)引入依赖

    (2)与spring集成
    和通用 Mapper 以前版本一样,可以直接使用 tk.mybatis 提供的 tk.mybatis.spring.mapper.MapperScannerConfigurer 进行配置,这个配置和MyBatis 官方提供的 org.mybatis.spring.mapper.MapperScannerConfigurer 区别只是
    第一层的包名, tk 和 org 。所以使用这种方式时,如果你项目已经使用 org. 进行了
    配置,只需要改成 tk. 即可。
  2. 实体类映射

    @Table是指定实体类对应的数据库表 @Id指的是主键映射。经过上面简单的配置后,相
    当于就有了 MyBatis 中的关系映射了
  3. 创建Mapper接口

    这里继承了 tk.mybatis.mapper.common.Mapper 接口,在接口上指定了泛型类型 Brand 。当你继承了 Mapper 接口后,此时就已经有了针对 Brand 的大量方法

工程搭建

一.准备工作

  1. 配置maven本地仓库
  2. 创建数据库表
  3. 注册中心zookeeper

二.模块依赖关系

  1. 我们的工程有三种模块:(1)公共模块 (2)服务层模块 (3)web层模块。
    公共模块主要由公共配置和公共类构成。

三.工程搭建

  1. 父工程与公共模块
    1. 创建父工程qingcheng_parent    pom.xml需要配置
    2. 创建公共模块qingcheng_common
      resources下创建applicationContext-common.xml
      dubbo-address.properties
      log4j.properties
    3. 创建qingcheng_common_service
      resources下创建applicationContext-dao.xml
      applicationContext-dubbo.xml
    4. 创建qingcheng_common_web
    5. 创建实体层模块qingcheng_pojo
    6. 创建服务接口层模块 qingcheng_interface
  2. 服务层模块(商品)
    1. 创建qingcheng_service_goods
    2. 创建webapp/WEB-INF/web.xml
    3. resources下创建dubbo.properties
    4. resources下创建db.properties
  3. web层(管理后台)
    1. 创建qingcheng_web_manager模块
    2. 创建webapp/WEB-INF/web.xml
    3. resources下创建dubbo.properties

管理后台-品牌管理后端

一.需求分析

  1. 实现对品牌的基本操作(增删改查),只完成后端代码部分,并通过浏览器等工具完成测试

二.表结构分析

  1. tbbrand 品牌表

三.代码实现

  1. 品牌列表
    url :  /brand/findAll.do
    http请求方式 : GET
    返回格式 : [{"id": 品牌id,"name": 品牌名称,"image": 品牌图片地址,"letter": 品牌的首字母,"seq": 排序,},.......]
    代码实现:
    1. 在qingcheng_pojo工程创建com.qingcheng.pojo包,包下创建实体类
    2. qingcheng_service_goods工程创建com.qingcheng.dao,包下创建数据访问层接口
    3. qingcheng_interface工程创建com.qingcheng.service.goods包,包下创建业务接口
    4. qingcheng_service_goods工程创建com.qingcheng.service.impl包,包下创建类
    5. qingcheng_web_manager工程创建com.qingcheng.controller.goods 包,包下创建类
    6. 启动工程,浏览器测试:http://localhost:9101/brand/findAll.do
  2. 品牌分页列表
    url : /brand/findPage.do
    http请求方式 : GET
    请求参数 :

    例子 :
    返回格式 :

    代码实现 :
    1. qingcheng_pojo创建com.qingcheng.entity包,包下创建类
    2. qingcheng_interface工程BrandService接口新增方法
    3. qingcheng_service_goods工程BrandServiceImpl新增方法
    4. qingcheng_web_manager工程BrandController新增方法
    5. 启动工程,浏览器测试:http://localhost:9101/brand/findPage.do?page=1&size=10
  3. 品牌条件查询
    url : /brand/findList.do
    http请求方式 : POST
    请求参数 :

    例子 :

    返回格式 :

    代码实现 :
    1. qingcheng_interface工程BrandService接口新增方法
    2. qingcheng_service_goods工程BrandServiceImpl新增方法
    3. qingcheng_web_manager工程BrandController新增方法
  4. 品牌条件+分页查询
    url : /brand/findPage.do
    http请求方式 : POST
    请求参数 :

    例子 :

    返回格式 :

    代码实现 :
    1. qingcheng_interface工程BrandService接口新增方法
    2. qingcheng_service_goods工程BrandServiceImpl新增方法
    3. qingcheng_web_manager工程BrandController新增方法
  5. 根据ID查询品牌
    url : /brand/findById.do
    http请求方式 : GET
    请求参数 :

    代码实现 :
    1. qingcheng_interface工程BrandService接口新增方法
    2. qingcheng_service_goods工程BrandServiceImpl新增方法
    3. qingcheng_web_manager工程BrandController新增方法
  6. 品牌新增
    1. qingcheng_pojo 新增类
    2. qingcheng_interface工程BrandService接口新增方法
    3. qingcheng_service_goods工程BrandServiceImpl新增方法
    4. qingcheng_web_manager工程BrandController新增方法
  7. 品牌修改
    1. qingcheng_interface工程BrandService接口新增方法
    2. qingcheng_service_goods工程BrandServiceImpl新增方法
    3. qingcheng_web_manager工程BrandController新增方法
  8. 品牌删除
    url : /brand/delete.do
    http请求方式 : GET
    请求参数 :

    例子 :

    返回格式 :

    代码实现
    1. qingcheng_interface工程BrandService接口新增方法
    2. qingcheng_service_goods工程BrandServiceImpl新增方法
    3. qingcheng_web_manager工程BrandController新增方法

公共异常处理

qingcheng_common_web工程创建com.qingcheng.controller包,包下创建类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值