SSM框架构建多模块之业务拆分实践
在如下这两篇篇文章我都或多或少强调过业务分层方面的的方法和注意事项,感兴趣的可以看看:
之前是说,现在是做。以我个人博客为例,我的博客最初只是一个单体应用,但是我决定将其拆分为多个模块,总体来说,还是一个单体war。但是性质是不一样的。
下面进入正题:
贴图说明:
blog-parent是父工程
blog-common主要放置工具类和其他可以复用的第三方插件或者是其他功能类
blog-entity 放置实体,通常是pojo也可以叫entity或者javabean
blog-dao 放置与数据库交互的接口类,也就是mapper
blog-service 业务接口及其实现类
blog-web 前台展示同时如果还开发安卓应用的话,直接提供接口
blog-generator 是代码生成器,主要应用于个人开发,提高效率用的
上述的依赖关系除了blog-generator之外,可以用思维导图可以表示为如下所示:
不过这个结构似乎也不太合理,适用于目前而言,业务不是特别大,最好采用这种形式表示:
两图比较主要区别在于将blog-common放到blog-service中,因为blog-service是业务逻辑,通常业务逻辑是可以复用多个的,而像一些判断或者是引用第三方插件,通常都在业务逻辑里具体实现后,而web模块中controlller直接调用即可,如果不放在blog-service中,就会出现一个问题,问题的主要凸显就是业务逻辑复用性差,导致很多都在controller里面下,也就是接口里面写,不利于复用,而且代码质量也会下降。
注意:
每个依赖记得都要maven install安装到本地仓库,否则会依赖不了,报错。
项目github地址为:https://github.com/youcong1996/ChallengerV.git
项目结果图如下所示:
前端模板主要采用的是layui,其实bootstrap也有很多这样的,大家可以在网上找找。
其实我参考了github上的不少项目还有一些小伙伴们的博客,其实还可以再细化分为如下(这里我还是用思维导图表示):
这样做的好处,主要是考虑可扩展性,前面列举的图一和图二可扩展性不是特别好,当然了,如果对于是一个人开发的话,直接单体应用即可,不用拆分,如果是两到三个人,可以按照图一和图二来。当然了,图一和图二还有一个考虑就是可读性,公司开发人员流动性比较强,特别是中小公司,总会有人走,也总会有人来,假如你是来的人,如果看到公司所有的代码全部在一个单体war上,而且有很多很多的com.xxxxx之类的,而且com.xxxxx下还有几十个类,试问你会作什么感想呢。
按照图三的设计,以后的扩展可以是这样:
随着业务一步一步扩大,可以将blog-web拆分为六个war,这就可能用到微服务架构了。
最后小结:
业务的扩展是一步一步慢慢来的,绝非一开始直接就业务拆分和分布式,那都是扯淡。
SSM框架构建多模块之业务拆分实践的更多相关文章
- 01 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之业务分析与DAO层
作者:nnngu 项目源代码:https://github.com/nnngu/nguSeckill 这是一个整合IDEA+Maven+SSM框架的高并发的商品秒杀项目.我们将分为以下几篇文章来进行详 ...
- Spring MVC 学习总结(十一)——IDEA+Maven+多模块实现SSM框架集成
一.SSM概要 与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC ...
- 带你十分钟快速构建好 SpringBoot + SSM 框架
目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐.而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了 ...
- 教你构建好 SpringBoot + SSM 框架
来源:Howie_Y https://juejin.im/post/5b53f677f265da0f8f203914 目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵 ...
- 教你十分钟构建好 SpringBoot + SSM 框架
目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐.而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了 ...
- SSM框架学习之高并发秒杀业务--笔记2-- DAO层
上节中利用Maven创建了项目,并导入了所有的依赖,这节来进行DAO层的设计与开发 第一步,创建数据库和表. 首先分析业务,这个SSM匡济整合案例是做一个商品的秒杀系统,要存储的有:1.待秒杀的商品的 ...
- MyEclipse的多模块Maven web(ssm框架整合)
Maven的多模块可以让项目结构更明确,提高功能的内聚,降低项目的耦合度,真正的体现出分层这一概念. 我们在操作中,要明白为什么这样做,要了解到更深的层次,这样,我们就不限于个别软件了. 话不多说,直 ...
- SSM框架整合环境构建——基于Spring4和Mybatis3
目录 环境 配置说明 所需jar包 配置db.properties 配置log4j.properties 配置spring.xml 配置mybatis-spring.xml 配置springmvc.x ...
- 【项目笔记】完成一个基于SSM框架的增删改查的模块后总结的问题
最近为了准备新工作重新摸出了SSM框架,同时从0学习了JQuery,终于用一周做完了一个包括增删改查的模块(主要是属性太多了,其中一个类50+,复制粘贴耗时). 从中特意记下了几个遇到的问题,总结一下 ...
随机推荐
- C#语言-06.XML
a. XML:称为可扩展标记性语言,它主要用于描述数据 i. 特点: . XML 中用于描述数据的各个节点可以自由扩展 . XML 文件中的节点区分大小写 . XML 中的每对标记通常被称为节点,它们 ...
- Nginx配置整理
不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要 ...
- hdu1385 最短路字典序
http://blog.csdn.net/ice_crazy/article/details/7785111 http://blog.csdn.net/shuangde800/article/deta ...
- shell编程之while死循环
原文 在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢? 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写: ------- ...
- IIS6服务器的请求流程(图文&源码)
1.IIS 7开发与管理完全参考手册 http://book.51cto.com/art/200908/146040.htm 2.Web服务IIS 6 https://technet.micro ...
- jQuery中的pushStack
在学习jquery源码的时候,学到了其中的pushStack方法,在这里记录一下 源码为 // Take an array of elements and push it onto the stack ...
- 教你小三角,适用移动端等,解决移动端a标签的默认样式
1.小三角,通过给一个div设置足够大的边框,让它的上边框,右边框,左边框,的背景颜色设置成透明的,来实现,如下: <!DOCTYPE html> <html> <hea ...
- vue支付密码
从网上搜索了好多都很麻烦,花了点事件自己做了个,简单轻便,老少皆宜 <template> <section class="pay-mask" @click=&qu ...
- USG防火墙基础
http://support.huawei.com/huaweiconnect/enterprise/thread-331003.html 华为防火墙产品线 安全区域 1. 默认防火墙区域 T ...
- Scrum过程管理学习心得
认识敏捷开发 在课堂上了解了瀑布开发,又在课下学习敏捷开发过程后,我发现,敏姐团队做的开发工作虽然和瀑布开发一模一样,但他们的做事方式很不一样.简单来说,两者的差别在于:瀑布开发必须先完成当前的步骤后 ...