admin 管理员组文章数量: 1184232
2024年4月24日发(作者:数据库多对多关系怎么实现)
ISSN1009-3044
Computer
Knowledge
Knowledge
and
and
Technology
Technology
电脑知识
电脑知识
与技术
Computer
与技术
Vol.17,No.4
February
2021
E-mail:*************.cn
第17卷第4期(2021年2月)
http://
Tel:+86-551-6569
Springboot最小系统的设计与实现
江健锋,徐振平
(长江大学,湖北荆州434023)
摘要:Springboot是在Spring基础上衍生的实用性框架,其目的并不是要替代Spring,而是为了改变Spring框架中烦琐的配
置项而诞生。其特点是更好地和第三方库结合进行开发,减少大量的配置代码,达到开箱即用的目的。而Springboot的最
小系统架构,是在web开发环境中,把安全验证、数据交互、错误返回等web程序基本要素结合成一个架构系统,不随业务
内容改变。而当项目业务内容发生改变时,只需要在该最小系统的基础上,实现业务逻辑即可。
关键词:Java;Springboot;Mybatis;SpringSecurity;Json
中图分类号:TP311文献标识码:A
文章编号:1009-3044(2021)04-0062-02
开放科学(资源服务)标识码(OSID):
1引言
作为Apache基金的顶级项目,Springboot框架的提出是为
了解决传统Spring框架配置烦琐的问题,而且配备了一系列诸
如SQL、NoSQL数据库、分布式系统等开源项目作为扩展项,堪
称全家桶,是现在绝大多数互联网单系统或分布式系统的必备
框架。而传统的基于Springboot框架的系统只是对Spring全家
桶按需使用,没有明确规划,在后期会造成项目的结构混乱,例
如:返回数据不统一造成前后端联调复杂;缺乏全局错误处理,
错误日志复杂,定位问题变得困难。所以,为了排除不同项目
业务对系统造成的差异性,我们可以构建最小系统框架,方便
项目的拓建,并且给团队一个适应的编程规范。
2.2系统采用技术
2.2.1基础功能模块
如图2所示,对于基础功能模块来说,有三个功能是不可
或缺的,分别是安全验证,前后端数据交互,异常处理,下文将
对这个功能逐一说明。
2系统架构描述
2.1最小系统架构
如图1,绝大多数系统架构核心必须包含三大模块,与用户
相关的业务模块;连接底层的数据管理模块;以及用于中间协
调系统的基础功能模块;就企业级而非个人的项目来说,除了
业务模块不一样之外,基础模块在逻辑功能上是共通的。最小
系统架构,其实就是构建系统的安全功能,数据交互封装,全局
异常处理,数据库连接等模块功能,同时避免受业务逻辑的干
扰,成为脱离业务单独运行的系统。下文将对系统的三个模块
进行剖析。
图1应用框架模型图
1)全局异常处理
众所周知,用户的输入不可能完全按照程序员的意愿来进
行;同时,程序员无法对程序运行的各种情况考虑的面面俱到,
因此,运行时出现异常或者错误是很难避免的。如果把程序内
部响应的错误直接返回给用户,会给用户造成疑惑。综上,我
们应该对程序所有可能发生的错误都进行捕捉,把错误信息封
装,挑选用户能理解的部分进行返回,提高用户体验度,全局异
常处理就显得十分重要。
全局异常处理应用的是SpringMVC提供的组件增强注解
@ControllerAdvice,以及捕捉系统异常的注解@ExceptionHan⁃
dler来进行全局声明,对于不同的类型,可以返回不同的消息。
对应部分代码如下:
@ControllerAdvice
@Slf4j
publicclassGlobalExceptionHandler{
//捕获运行时异常
@ExceptionHandler()
@ResponseBody
publicJsonResulthandlerBusinessException(RuntimeExcep⁃
tionex){
图2基础功能模块
收稿日期:2020-10-20
62
软件设计开发
本栏目责任编辑:谢媛媛
第17卷第4期(2021年2月)
("
tackTrace();
错误:{}"Msg());
e(ex);
}
}
2
换格式,
JSON(JavaScript
)前后端数据封装
其简洁而又清晰的层次结构让其逐渐取代
ObjectNotation)是一种广泛应用的数据交
XML称为
前
spring-boot-starter-web
后端格式交互的主要格式
[1]
。在Springboot的核心jar包
后台进行请求的时候,可以设置返回的文本格式为
中,默认封装了JSON工具包,
JSON
当前端对
。但
是JSON简单清晰的特点只体现在数据传输方面,Springboot框
架并没有对返回的数据内容格式上做任何要求,
JSON
根据计算机网络传输的知识,
中,可以是一串文字,也可以是某种层次结构。
即返回的
我们知道,当系统正常运转
并返回时,计算机状态码为200;服务器内部执行错误状态码会
返回5xx来代表不同的错误状态。我们可以结合全局异常处理
的内容,不管用户传输给我们的数据是什么,只要程序能够接
收,http携带的状态码都返回200,我们可以把程序的错误或者
程序员自定义的错误内容封装到JSON中,所以我们必须有一
个代表状态码的code字段和中文解析message字段。除了错误
返回之外,程序必须能够正常执行并返回数据,返回数据的数
据是一个对象,
JSON
我们用data字段来表示。最终,前后端通用的
{
文本格式为。
code:
msg:
状态码(数字
data:
中文解析
}
程序返回的数据
(字符串
),
(
),
对象)
3
Security
本文使用的安全模块采用的是
)安全模块
的一员,
是一款企业级的权限认证授权框架,
SpringSecurity
和Springboot具有很好的契合性。同时,
作为
安全模型的结
Spring
框架,
全家桶
Spring⁃
构设计采用RBAC(Role-BasedAccessControl基于角色的访问
控制)模型设计。文献2通过提出一致性准则、安全性准则和可
用性准则分别证明了RBAC模型安全特性与该三项准则安全
特性相一致,证明了RBAC的可靠性
[2]
。
2.2.2数据管理模块
项目必须考虑后期的扩展性,而随着业务数据量的激增,
框架对数据的承受能力必须有很好的把握,或者说要有足够的
扩展性,在后期进行扩展。作为一个抽象的单系统,最小系统
架构来说,最大化地减少系统负担并且有足够的扩展性,都是
不可或缺的。图3是数据管理模块的抽象结构图,其中不包含
任何数据分析的模块,只做数据管理功能。
本栏目责任编辑:谢媛媛
ComputerKnowledgeandTechnology
电脑知识
与技术
1
图3数据管理模块
如图
)ORM
3所示,
框架
ORM(ObjectRelationalMapping,对象关系映
射)框架,用于实现面向对象语言里不同类型系统的数据之间
的转换
[3]
。在Java语言中,JDK(JavadevelopmentkitJava开发工
具包)提供了数据库映射数据的API,作为数据返还,ORM作为
框架接收;底层需要数据库驱动,为了提高数据库复用率,提高
系统吞吐率,我们可以使用数据库连接池来进行并发优化。
基于Java语言的开源ORM框架有Hibernate和Mybatis,前
者是全自动化的集成框架,包括数据映射,数据库建表,增删改
查语言的自动生成;而Mybatis则是一个半自动框架,提供了大
量接口供用户调用,这种半自动化给了用户很大的自由性,所
以最小系统框架选择使用
2
Mybatis框架。
著名的数据库连接池开源组件有
)数据库连接池
Druid,c3p0,dbcp。本系
统采用的数据库连接池是阿里开源的Druid,相比于其他两款
数据库连接池,Druid提供了强大的扩展和监控功能,在适应大
数据方面,容错率和性能上都相当的出色。
3总结
本文从框架的层面,分析和综合了绝大多数程序架构的特
点和共性,抽象化地提出了互联网应用最小系统架构的概念。
其特点是抽离了业务逻辑实现系统运行的最小化,同时保证了
系统的可扩展性。
参考文献:
[1]百度.JSON[EB/OL].[2020-05-24]./
[2]
item/JSON,2015-5-11.
熊厚仁,陈性元,张斌,等.基于RBAC的授权管理安全准则分
[3]
析与研究
baike.
百度.ORM
[J].计算机科学
对象关系
,2015,42(3):117-123.
映射
ORM&fromid=3583252&fr=aladdin.
/item对象关
[EB/OL].
系映射
[2020-05-24].
/311152?fromtitle=
【通联编辑:代影】
软件设计开发
63
版权声明:本文标题:Springboot最小系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713934886a658457.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论