首先来谈谈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文件。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乱码)。故不再叙述。基本上该项目的架构大概就是这样,如果还有其他的遗漏的,欢迎评论区留言,小锋会尽快更新第二节