e3mall商城的归纳总结1之项目的架构
首先来谈谈e3mall商城,e3mall商城是黑马推出一个学习的项目,前身是淘淘商城.两个用的技术差不多.,但由于后期加了一些新技术,更名为e3mall商城.本商城为分布式商城,主要用到的技术使maven、ssm框架、redis缓存,redis实现单点登录、zookeeper、dubbo、solr、activemq、nginx、freemarker等技术。
一、谈谈项目的架构
该项目由于是一个商城,因此需要考虑到很多因素,比如项目的抗压能力等因素,因此该项目使用了分布式架构,分布式架构在这几年基本上很流行了。所以现在又出现了Spring Boot、Spring Clound 等框架出现。因为该项目很大,复杂度很高,属于一个经典的项目。因此该项目使用了ssm框架+maven管理。
maven管理该项目,该项目包含一个parent(pom),用于管理该项目的jar包版本号。然后parent文件下面再创建每一个模块的maven文件,每一个模块包含两大类文件,一类是使用了聚合工程(pom),里面包含Dao(jar)、pojo(jar)、interface(jar)和service(war)。然后另一个是Web模块(war),Web模块通过dubbo、zookeeper技术调用service模块的服务(利用interface层)。
(0)父亲
(1)儿子
(2)孙子
e3-parent:父工程,打包方式pom,管理jar包的版本号。(0)
— | 项目中所有工程都应该继承父工程。
—— |–e3-common:通用的工具类通用的pojo。打包方式jar(1)
—— |–e3-manager:服务层工程。聚合工程。Pom工程(1)
—— ——|–e3-manager-dao:打包方式jar(2)
—— ——|–e3-manager-pojo:打包方式jar(2)
—— ——|–e3-manager-interface:打包方式jar(2)
—— ——|–e3-manager-service:打包方式:jar(2)
—— |–e3-manager-web:表现层工程。打包方式war(1)
然后通过maven的依赖传递来把所有的maven都联系在一起。
web中依赖interface(通过接口调用)
service依赖interface(因为要实现interface的接口,因此也需要依赖interface)
service依赖dao(因为service调用dao层查询数据库)
interface调用pojo(因为interface中需要用到pojo,比如public updateUser(User user);)
同时我也画了图方便大家查看.

二、dao层
dao层是操作数据库的一层,由于使用的是ssm框架,因此这里使用mybatis的逆向工程,然后把mapper包中的文件复制到dao层中。然后配置pom文件,引入jar包,比如mysql、druid以及mybatis等的jar包。同时也需要依赖注入pojo。否则mapper接口会报错。注意,为了避免运行后xml文件漏掉,需要在pom最后配置包含xml文件。
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
三、pojo层
pojo层也是通过mybatis的逆向工程生成得到的,同理。
四、interface层
interface配置主要在pom文件中引入pojo的jar包
五、service层(* )
service层是一个war工程。因此它的配置比较繁琐,除了pom文件中引入jar包(Spring interface、dao、dubbo。zookerper、activemq、redis等),还需要对spring进行配置,存放在resource中(把配置文件分开,分为dao、service和trans),还有web.xml的配置。让工程运行后自动加载Spring容器。因配置为ssm的简单配置。故不详细说。
六、web层( *)
web层主要是controller层,用来拦截前端的请求,然后拦截到方法中再进行下一步详细操作。配置也是简单的ssm配置(扫描包、静态文件放行、)web.xml(springmvc前端控制器,解决post乱码)。故不再叙述。
基本上该项目的架构大概就是这样,如果还有其他的遗漏的,欢迎评论区留言,小锋会尽快更新第二节
e3mall商城的归纳总结1之项目的架构的更多相关文章
- e3mall商城的归纳总结9之activemq整合spring、redis的缓存
敬给读者 本节主要给大家说一下activemq整合spring,该如何进行配置,上一节我们说了activemq的搭建和测试(单独测试),想看的可以点击时空隧道前去查看.讲完了之后我们还说一说在项目中使 ...
- e3mall商城的归纳总结10之freemarker的使用和sso单点登录系统的简介
敬给读者的话 本节主要讲解freemarker的使用以及sso单点登录系统,两种技术都是比较先进的技术,freemarker是一个模板,主要生成一个静态静态,能更快的响应给用户,提高用户体验. 而ss ...
- e3mall商城的归纳总结6之redis
一.说在前面的话 前面几节我们主要对该项目的后端进行了增删改查,但是所有的数据都是存放在数据库中,这样的话数据库的压力显而易见是很大的,因此本节学习nosql的缓存,也就是redis的使用,在使用之前 ...
- e3mall商城的归纳总结4之图片服务器以及文本编辑器
一.图片服务器 --1.认识图片服务器 大家可能都知道在分布式架构中使用图片上传可能会导致文件存放在某一个项目,而我们的项目基本上都采用集群的方式 ,因此这样会导致图片的问题比较难以存放,在这里我们有 ...
- e3mall商城的归纳总结2之认识dubbo、zookeeper
由于本项目用的是soa架构,因此必须需要两个系统之间进行通信,目前的解决办法有三种(本人认为) Webservice:效率不高基于soap协议.项目中不推荐使用. 使用restful形式的服务:htt ...
- e3mall商城的归纳总结7之solr搭建和应用
敬给读者的话 本文主要应用的技术是solr技术的搭建和应用,本文小编尽量写的更详细一些,让读者在不考虑项目的情况下也能正常完成solr的搭建,说完搭建之后,再说明运行solrj在项目中如何应用solr ...
- e3mall商城的归纳总结3之后台商品节点、认识nginx
一 后台商品节点 大家都知道后台创建商品的时候需要选择商品的分类,而这个商品的分类就就像一棵树一样,一层包含一层又包含一层.因此这里用的框架是easyUiTree.该分类前端使用的是异步加载模式(指 ...
- e3mall商城的归纳总结8之solr集群、activemq的搭建和使用
由于本节内容比较分散,因此专门为这两个技术进行开展了帖子. solr集群的搭建 solr集群solrJ的测试 activemq的搭建 activemq的使用 引入activemq.jar包 我们先来说 ...
- e3mall商城的归纳总结5之修改商品分类、e3mall—content的搭建
说在前面的话 本节基本上没有用到新的知识点.主要还是对数据库的增删改查以及创建了一个新的内容模块. 新增商品分类 由于easyUI的Tree需要三个字段(Id.state.text), [{ &quo ...
随机推荐
- EACCES: permission denied,mkdir … npm install 安装依赖问题解决
强哥最近在用hugeGraph图库做二次开发的时候,在打包的时遇到前端项目打包失败的问题: cwebp-bin@4.0.0 postinstall /home/hugegraph/my-hugegra ...
- Python 为什么会有个奇怪的“...”对象?
本文出自"Python为什么"系列,请查看全部文章 在写上一篇<Python 为什么要有 pass 语句?>时,我想到一种特别的写法,很多人会把它当成 pass 语句的 ...
- day9.关于文件的操作
一.文件操作 """ fp = open("文件名",mode="模式",encoding="utf-8") ...
- canvas小画板--(1)平滑曲线
功能需求 项目需求:需要实现一个可以自由书写的小画板 简单实现 对于熟悉canvas的同学来说,这个需求很简单,短短几十行代码就能实现: <!doctype html> <html& ...
- Chrome-AdGuard 无与伦比的广告拦截扩展
一款无与伦比的广告拦截扩展,对抗各式广告与弹窗. AdGuard 广告拦截器可有效的拦截所有网页上的所有类型的广告,甚至是在 Facebook.Youtube 以及其他万千网站上的广告! AdGuar ...
- 暑期java(面向对象设计)学习第一阶段总结
0.前言 本次博客针对的是暑假学习java(面向对象设计)的前三次作业的小结,第一次作业:7-1 对三个整数排序 7-2 对四个整数排序 7-3 对十个整数进行排序 7-4 对多个整数进行排序 第二次 ...
- Python 爬虫工程师必看,深入解读字体反爬虫
字体反爬虫开篇概述 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人 ...
- Java异常机制,自定义异常以及spring boot异常设计方案
异常机制: 异常概念 异常分类 异常的处理方法 自定义异常 springboot 的异常解决方案
- NMS系列
NMS soft NMS softer NMS https://www.cnblogs.com/VincentLee/p/12579756.html
- PyCharm 2020.1专业版安装教程及破解方法
一.安装第一步下载 版本一定得是:2020.1 其他版本下载地址:https://www.jetbrains.com/pycharm/download/other.html 安装不多说了: 二.破解 ...