SSM框架构建多模块之业务拆分实践

简介:

在如下这两篇篇文章我都或多或少强调过业务分层方面的的方法和注意事项,感兴趣的可以看看:

系统设计和系统划分有定律可循

业务拆分的思考

之前是说,现在是做。以我个人博客为例,我的博客最初只是一个单体应用,但是我决定将其拆分为多个模块,总体来说,还是一个单体war。但是性质是不一样的。

下面进入正题:

贴图说明:
image

blog-parent是父工程

blog-common主要放置工具类和其他可以复用的第三方插件或者是其他功能类

blog-entity 放置实体,通常是pojo也可以叫entity或者javabean

blog-dao 放置与数据库交互的接口类,也就是mapper

blog-service 业务接口及其实现类

blog-web 前台展示同时如果还开发安卓应用的话,直接提供接口

blog-generator 是代码生成器,主要应用于个人开发,提高效率用的

上述的依赖关系除了blog-generator之外,可以用思维导图可以表示为如下所示:

image

不过这个结构似乎也不太合理,适用于目前而言,业务不是特别大,最好采用这种形式表示:

image

两图比较主要区别在于将blog-common放到blog-service中,因为blog-service是业务逻辑,通常业务逻辑是可以复用多个的,而像一些判断或者是引用第三方插件,通常都在业务逻辑里具体实现后,而web模块中controlller直接调用即可,如果不放在blog-service中,就会出现一个问题,问题的主要凸显就是业务逻辑复用性差,导致很多都在controller里面下,也就是接口里面写,不利于复用,而且代码质量也会下降。

注意:

每个依赖记得都要maven install安装到本地仓库,否则会依赖不了,报错。

项目github地址为:https://github.com/youcong1996/ChallengerV.git

项目结果图如下所示:
image

前端模板主要采用的是layui,其实bootstrap也有很多这样的,大家可以在网上找找。

其实我参考了github上的不少项目还有一些小伙伴们的博客,其实还可以再细化分为如下(这里我还是用思维导图表示):

image

这样做的好处,主要是考虑可扩展性,前面列举的图一和图二可扩展性不是特别好,当然了,如果对于是一个人开发的话,直接单体应用即可,不用拆分,如果是两到三个人,可以按照图一和图二来。当然了,图一和图二还有一个考虑就是可读性,公司开发人员流动性比较强,特别是中小公司,总会有人走,也总会有人来,假如你是来的人,如果看到公司所有的代码全部在一个单体war上,而且有很多很多的com.xxxxx之类的,而且com.xxxxx下还有几十个类,试问你会作什么感想呢。

按照图三的设计,以后的扩展可以是这样:
image

随着业务一步一步扩大,可以将blog-web拆分为六个war,这就可能用到微服务架构了。

最后小结:

业务的扩展是一步一步慢慢来的,绝非一开始直接就业务拆分和分布式,那都是扯淡。

目录
相关文章
|
2月前
|
前端开发 Java 数据库连接
SSM框架笔记源码剖析
SSM,是Spring+Spring MVC+MyBatis的缩写,是继SSH之后,目前比较主流的JavaEE企业级框架,适用于搭建各种大型的企业级应用系统。Spring依赖注人DI来管理各层的组件,使用AOP (面向切面编程)管理事务、日志、权限等。Spring MVC代表Model(模型)、View(视图).Contoller(控制)接收外部请求并进行分发和处理。MyBatis是基于JDBC的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
23 0
|
3月前
|
Java 数据库连接 Maven
SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
|
1月前
|
SQL Java 数据库连接
浅谈SSM框架理论相关知识_kaic
浅谈SSM框架理论相关知识_kaic
|
3月前
|
Java 应用服务中间件 Maven
IDEA使用Maven整合搭建SSM框架
IDEA使用Maven整合搭建SSM框架
26 1
IDEA使用Maven整合搭建SSM框架
|
3月前
|
Java 数据库 数据安全/隐私保护
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
基于SSM框架实现管科类考研自我管理系统(分前后台spring+springmvc+mybatis+maven+jsp+jquery)
|
3月前
|
Java BI 数据库
基于SSM框架实现面向小微企业的简历管理系统企业简历管理系统(分前后台spring+springmvc+mybatis+maven+jsp+css+echarts)
基于SSM框架实现面向小微企业的简历管理系统企业简历管理系统(分前后台spring+springmvc+mybatis+maven+jsp+css+echarts)
|
3月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
|
3月前
|
Java 数据库连接 数据库
基于SSM+maven框架实现的企业考勤管理系统
基于SSM+maven框架实现的企业考勤管理系统
|
1月前
|
JavaScript Java 关系型数据库
实例!使用Idea创建SSM框架的Maven项目
实例!使用Idea创建SSM框架的Maven项目
38 0
|
1月前
|
Java 数据库连接 数据库
JAVA Web项目开发SSM框架搭建(第一天)
JAVA Web项目开发SSM框架搭建(第一天)