博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
e3mall商城的归纳总结1之项目的架构
阅读量:5366 次
发布时间:2019-06-15

本文共 2179 字,大约阅读时间需要 7 分钟。

首先来谈谈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);)
同时我也画了图方便大家查看.
e3mall项目maven依赖传递图

二、dao层

dao层是操作数据库的一层,由于使用的是ssm框架,因此这里使用mybatis的逆向工程,然后把mapper包中的文件复制到dao层中。然后配置pom文件,引入jar包,比如mysql、druid以及mybatis等的jar包。同时也需要依赖注入pojo。否则mapper接口会报错。注意,为了避免运行后xml文件漏掉,需要在pom最后配置包含xml文件。

src/main/java
**/*.properties
**/*.xml
false

三、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乱码)。故不再叙述。

基本上该项目的架构大概就是这样,如果还有其他的遗漏的,欢迎评论区留言,小锋会尽快更新第二节

转载于:https://www.cnblogs.com/xiaofeng88/p/10317341.html

你可能感兴趣的文章
可枚举属性和不可枚举属性(for...in循环和Objec.keys()和Object.getOwnPropertyNames())...
查看>>
LeetCode-24. Swap Nodes in Pairs
查看>>
BZOJ 4195: [Noi2015]程序自动分析 并查集+离散化
查看>>
BZOj 3208 食物 生成函数+广义二项式定理
查看>>
ESXI 6.5 从载到安装
查看>>
布局方式-表格布局
查看>>
结构与算法(1)-----数据结构与算法简介
查看>>
tab切换(修改)
查看>>
《Java基础学习笔记》JAVA之静态(Static)
查看>>
ceph nautilus版本手动安装
查看>>
leetcode--Remove Duplicates from Sorted List II
查看>>
c++日历类
查看>>
表格导出
查看>>
POJ 3667(线段树区间合并)
查看>>
ASP.NET Ajax 实现无刷新分页
查看>>
PHP设计模式笔记四:适配器模式 -- Rango韩老师 http://www.imooc.com/learn/236
查看>>
hadoop家族技能图谱
查看>>
手写Spring mvc框架 (二)
查看>>
LoadRunner错误处理函数
查看>>
监控数据库
查看>>