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+,复制粘贴耗时). 从中特意记下了几个遇到的问题,总结一下 ...
随机推荐
- Entity Framework6 with Visual Studio 2013 update3 for Oracle 11g
2014年7月的时候,写了一篇关于EF5 with visual studio 2010 for oracle 11g的博文 原文地址 :http://www.cnblogs.com/HouZhiHo ...
- .Net程序员玩转Android系列之二~Android Framework概要(1)
从windows操作系统说起 人们总是喜欢从将陌生的事物和自己所了解的东西关联起来,以加深对未知事物的了解,这一讲我们从windows操作系统说起,逐步引领带大家走入android的世界.写任何程序都 ...
- webservice log4net日志写入失败
原因1:如果webservice和调用者都部署在一台机器上,日志有可能写到了项目所在目录中,虽然你添加的服务引用是部署在iis下的,但不会写到这.暂时解决办法,把webservice部署到内网服务器上 ...
- 七、集成swagger2
1.添加依赖 <!-- swager2 --> <dependency> <groupId>io.springfox</groupId> <art ...
- 读EntityFramework.DynamicFilters源码_心得_示例演示02
上次对EntityFramework.DynamicFilters整体的项目结构有了一个认识,这次我们就通过阅读说明文档,示例项目,和单元测试,来动手构建一个我们的体验项目,通过对动态过滤器的使用,使 ...
- Angularjs之依赖注入
一个对象通常有三种方式可以获得对其依赖的控制权: 在内部创建依赖: 通过全局变量进行引用: 在需要的地方通过参数进行传递 依赖注入是通过第三种方式实现的.比如: function SomeClass( ...
- 弹性布局(flex)
一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局.但在使用时 ...
- Python入门-初始函数
今天让我们来初步认识一个在python中非常重要的组成部分:函数 首先,让我们来幻想这样一个场景: 比如说我们现在想要通过社交软件约一个妹子,步骤都有什么? print('打开手机 ') print( ...
- webpack 启动 vue
右击 package.json 单击show npm Scripts
- 【Markdown】Latex基本语法
Latex基本语法 注意点:Markdown 斜杠/ 转义字符! LaTeX 是大神Leslie Lamport 的杰作,该神是2013年图灵奖的获得者,感兴趣可以去瞻仰一下神人的相关著述: http ...