一个纯粹的项目-总章

项目来源

        一直以来,不知道写些神马,也不知道怎么去开这个头。近来闲来无事,细细思来,不如把当前手上的我用来做公司支付服务的项目拆解了,作为一个无业务,纯架构的项目来跟大家分享下一套中小型项目的架构有些什么东西。

项目环境

       jdk7、eclipse4.5、Tomcat7(开发其实可以不需要)、mysql5.7、maven3、nexus(开发环境可以不需要)

项目架构

        一般一套中小型的项目大多都会选择市场上比较成型的框架,如:ssh、ssi等,拙劣一点儿的项目会直接把架构和业务还有所谓的MVC结构全都糅合在一起,只要实现功能就行。本系统虽然也是本着小成本大制作的原则,采用的是springboot+spring+mybatis市面上比较成熟的开源框架,但自己在原有的基础上再进行很有效的分层和封装,以达到类似于一些大型公司自己的架构平台的初始效果。本系统整体架构如下:


架构介绍

        root:pom父项目,作为整个项目的父项目和根目录,一般做些基本共通配置即可。

        base:jar架构项目,主要封装了底层架构的配置,其它的业务层均需依赖该项目,除非它想搞独立。

        entity:jar实体项目,独立的实体类,就相当于把这个项目所涉及到的数据库表都搬到了java工程里,用专业术语讲这叫“将关系型的数据库数据转化为java的面向对象型的对象”。

        utils:jar工具项目,系统所用到的一些共同的工具类,都放在这个工程里,有些人为了图方便和省事经常哪个工程用就放哪个工程里,这个习惯狠不好,要改,要约束。

        component:jar第三方插件项目,一般的业务都会涉及一些第三方的插件及其调用方式方法,如:上传下载解析、Excel导出等,可放在这里面。有人可能会说,这个应该会和一些工具类混淆吧,怎么区分呢?说实话,有些工具类和插件类没多大差别,那怎么强行区分呢,凭经验区分。如果经验不够怎么办呢,我这里还提供一个小窍门儿,需要引入第三方jar才能实现的功能,你就统一把它当插件扔这个工程里吧。绝对靠谱~

        core:jar核心业务项目,这一层主要是实现具体的业务功能,它会按功能需求来调用业务层其它的工程来实现相关业务功能。因为这个工程够复杂,所以它的设计就显得相当重要,这个设计主要体现在两个方面:1.功能模块的划分,体现形式是service的文件夹;2.业务结构的划分,体现在主业务和子业务之间的依赖。所以这个工程的设计还是找个靠谱的懂业务的并且会设计模式的来设计吧,不然后面业务变动频繁了开发越来越难改动了。那么问题来了,业务会变动那么频繁吗?呵呵,小子你太天真了。

        web:开发环境可以用jar项目,测试和生产环境可以改成war项目来发布,这个主要是spring boot的特性,图个开发省事儿,后面的文章会详述,敬请期待。本工程主要是用户页面展示的view层和响应用户动作的controller层。

       api:跟web性质一样。本工程主要是做一些对外接口,可以是如APP等的响应用户动作的接口,也可以是供批处理调用的一些功能性接口方法,还可以是一些需要外挂的小程序接口等。如果业务没这个需求可以不要该工程。

       batch:可以发布为war服务工程,也可以直接运行jar工程当批处理在后台静默运行。目的都是一样,只是对web工程的某些功能进行自动或半自动的补充和协助,比如:邮件发送等。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值