笔者团队以前后台都是基于.Net和.NetCore, 今年转Java了,不是.Net相关技术不好,而是在中小城市相关开发人员缺乏,Java相对来说开发人员要丰富很多。

后台有必要重新搭建一个内部的开发框架,由于没有历史积累,直接使用SpringBoot作为基础框架,在此之上再做一个封装。

分享出来给大家参考,此框架适应于中小企业Java实现的WebAPI项目(前后端分离)。大家可以直接使用,但是最好还是理解并修改成适用自己团队的框架。

1.基本结构

image.png

如上图,我们的框架包含很多库,其中d1.framework.webapi和d1.framework.cache是所有webapi项目都必须依赖的,其它的库是看需求选择依赖的。下面列出所有库的基本功能:

d1.framework.webapi: 业务项目依赖的基本库,包含springboot相关很多功能的封装,比如Application、Entity、Service、Controller等基类,还有swagger、跨域,权限统一认证,日志相关等等,后面单独说明。

d1.framework.cache: 缓存相关的库,因为d1.framework.webapi依赖这个库,所以所有业务项目也都依赖它,一个接口外加ehcache和redis的实现,实际业务项目中选择一种就可以。

d1.framework.storage: 不是必须依赖的库,一个接口外加本地文件存储和七牛云存储的实现。

d1.framework.util:不是必须依赖的库,实现一系列工具类,是在业务项目开发过程中逐渐积累的一些和业务无关的静态方法。

d1.framework.push:不是必须依赖的库,实现极光推送,这个是我们团队比较常用的app推送第三方库的封装。

d1.framework.sms:不是必须依赖的库,一个接口外加二种第三方的短信封装,主要用于注册等短信验证。

d1.framework.weixin:不是必须依赖的库,微信小程序、公众号、app等开发平台相关封装。

d1.framework.ocr: 不是必须依赖的库,封装了阿里的二个图形识别服务,也是实际业务项目用到了后封装的。

d1.framework.mqttclient:不是必须依赖的库,是对mqtt协议的实现,也是对一个开源库的封装。

2. 基本说明

springboot已经非常方便了,但是还是有必要把一些重复的不变的功能封装成框架,开发框架和开发业务应该分开。

框架里有一些我们团队特有的约定,并不一定适合所有人的习惯。

所有业务项目使用gradle工具构建,主要是觉得gradle比maven更简洁。

框架所有项目都上传到我们内部的Nexus

搭建的maven库,搭建的方法可以参考我以前发的贴。 业务项目通过gradle来配置依赖:

repositories {

mavenCentral()

maven{ url 'http://你的nexus库地址/repository/d1-java/'}

}

除d1.framework.webapi库强制依赖springboot以外,其它库都没有依赖springboot,这样其它库也可以很方便用于非springboot的业务项目

大部分库都是先定义接口,再对这个接口进行实现,通常有好几种实现。

很多第三方库已经很简单了,但是还是有必要做一次封装,主要还是第三方库功能很多,但是我们通常用到的很少,而且有很多缺省用法,封装后使用更简单,也能让第三方库版本变化后对现有业务项目也没影响。

每个库项目都由一个springboot业务项目作为测试库的入口以及一个库真正实现的module,这个module修改完后build成jar包并推送到nexus服务上。

所有业务项目都是在IDEA下开发,没有使用Eclipse。

框架是在业务项目不断的开发中逐渐积累和完善的,功能会越来越多,bug会越来越少。

3. 源码

源码都上传到github,下载后要跑起来还需修改:

搭建自己的nexus服务,或者改造业务项目生成jar包,然后使用本地依赖方式。

所有第三方对应的密钥信息都已经修改成一些随便的数字,确保安全性,

源码里除了框架库代码,还有一个d1project项目是用于使用框架的一个webapi模板项目。如果新建一个业务项目可以通过拷贝这个项目作为基础。

本文是第一部分,第二部分主要是对d1.framework.webapi的详细介绍。

java做webapi_基于SpringBoot的WebAPI开发框架(一)相关推荐

  1. java erp开源_【程序源代码】基于springboot开源ERP开发框架

    关键字:java springboot 简单框架 ERP 正文 | 内容 01 - [介绍] ERP基于springboot开源ERP开发框架 02 - [技术框架] 1.java环境, 检查java ...

  2. 基于SpringBoot搭建应用开发框架(一) —— 基础架构

    基于SpringBoot搭建应用开发框架(一) -- 基础架构 目录 Spring的简史 零.开发技术简介 一.创建项目 1.创建工程 2.创建Starter 3.启动项目 4.Spring Boot ...

  3. java计算机毕业设计基于springboot小区物业管理系统

    项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于小区物业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了小区物业管理系统,它彻底改变了过 ...

  4. java计算机毕业设计基于springboot+vue+elementUI的旅游网站(源码+数据库+Lw文档)

    项目介绍 旅游管理平台采用B/S模式,促进了旅游管理平台的安全.快捷.高效的发展.传统的管理模式还处于手工处理阶段,管理效率极低,随着用户的不断增多,传统基于手工管理模式已经无法满足当前用户需求,随着 ...

  5. java计算机毕业设计基于springboot企业人事工资管理系统

    项目介绍 在这个计算机信息时代深处,对于每个公司来说,人事管理的信息化是企业发展的重要组成部分.使用计算机管理人员信息具有传统管理无法比拟的巨大优势.比如:快速查询.管理方便.可靠性高.存储容量大.保 ...

  6. java计算机毕业设计基于springboot 医院急诊挂号系统

    项目介绍 人难免会有生病的时候,尤其是当一些突发情况下,一旦发生一些疾病很可能会危及生命.这时候如果按照常规的方式进行挂号是很浪费时间的一件事情,更重要的是很可能错过最好的治疗机会,所以各大医院基本都 ...

  7. java计算机毕业设计基于springboot+vue+elementUI的口腔管理平台管理系统(前后端分离)

    项目介绍 口腔卫生是关系民生的一个重要问题.口腔健康会直接影响全身的健康,口腔基本常见的有龋齿,牙周炎等问题,而且人类的牙齿只有2次更换周期,一旦牙齿彻底完成更换终生将不再更换,所以越来越多的人开始关 ...

  8. java计算机毕业设计基于springboot人职匹配推荐系统

    项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于人职匹配推荐系统当然也不能排除在外,随着网络技术的不断成熟,带动了人职匹配推荐系统,它彻底改变了过 ...

  9. java计算机毕业设计基于springboot+vue+elementUI的实验室管理系统(前后端分离)

    项目介绍 科技水平一直是体现一个国家强弱的重要标志,而科技的一点诞生地是实验室,如果能够更好的对实验室进行管理是很多实验室管理人员一直研究的一个问题.只有更加科学和合理化的利用实验室才能够更好的让科技 ...

最新文章

  1. linux文件移出目录命令_Linux 文件与目录管理详解
  2. 漂亮好用的ASP.NET图表控件 免费的
  3. win10巨帧数据包在哪里设置_Win10电脑总感觉网速慢,是什么原因
  4. alter system switch logfile和alter system archive log current的区别
  5. 转载:Yahoo推出视频标签游戏
  6. IOS之使用纯代码push ViewController
  7. 用scrapy框架写爬虫
  8. 2年的程序员之路 ,分享给你们
  9. zabbix 配置mysql_zabbix 配置mysql监控
  10. sympy —— Python 符号运算
  11. vue+echart 利用散点图实现柱状时间驻留图
  12. ACL 2020投稿破 3 千,到底有多少人在做 NLP 研究?
  13. 62.Linux/Unix 系统编程手册(下) -- 终端
  14. 阿里云平台购买域名 免费申请SSL证书
  15. 小牛电动为何沉迷于打造“社区文化”?
  16. win10连不上网,几种尝试
  17. 【原创】彻底解决2440触摸屏跳点以及抖动问题
  18. 使用苹果的地图与定位
  19. python装饰器带参数函数二阶导数公式_SICP Python 描述 1.6 高阶函数
  20. android H5开发出现广告,常见的移动端H5页面开发遇到的坑和解决办法

热门文章

  1. 测试工程师经验(一)
  2. C语言的底层逻辑剖析函数篇(其二),0基础搞定函数,初识函数递归,超详解
  3. 史上最纯净精简版win7系统封装过程,整个体积2.3G
  4. 稀有金属ETF基金涨幅
  5. Python基础学习笔记:异常处理与断言(assertions)的运用
  6. cloudflare对某境外网站加速测试
  7. HTML+CSS面试题汇编
  8. PNAS | 文本网络分析文化桥梁Python代码实现
  9. 北语20春计算机应用基础,北语20春《计算机应用基础》作业3答案
  10. mod 运算的应用(笔记)