基于SpringBoot的开放式软件开发案例教学平台设计
作者:齐善鲁 马徳俊 梁雪
来源:《电脑知识与技术》2021年第28期
        摘要:基于SpringBoot與Vue框架,通过前后端分离的方式搭建了一种方便学生查阅、教师教学的开放式软件开发案例教学平台。平台后端利用MyBatis框架访问数据库,采用SpringBoot框架进行后端逻辑设计,封装API接口供前端进行请求访问,前端采用渐进式的V
ue框架进行界面设计与实现,最终设计了基于B/S架构的开放式软件开发案例教学平台,实现了对不同系统架构、不同类型的软件开发案例的管理与展示。
        关键词:SpringBoot;软件开发;教学案例;Vue;开放式
        中图分类号:TP311 文献标识码:A
        文章编号:1009-3044(2021)28-0071-03
        开放科学(资源服务)标识码(OSID):
        Design of Open Software Development Case Teaching Platform Based on SpringBoot
        QI Shan-lu, MA De-jun, LIANG Xue
        (School of Computer and Control Engineering, Yantai University, Yantai 264005, China)
        Abstract: Based on the framework of SpringBoot and Vue, an open software devel
opment case teaching platform is built, which is convenient for students to consult and teachers to teach. The back-end of the platform uses mybatis framework to access the database, uses springboot framework to design the back-end logic, encapsulates the API interface for the front-end to request access, and the front-end uses the progressive Vue framework to design and implement the interface. Finally, an open software development case teaching platform based on B / S architecture is designed, which realizes the teaching of different system architectures management and presentation of different types of software development cases.
        Key words: SpringBoot; software development; teaching case; Vue;open style
        1 背景
        以服务为导向,以用户需求为目标,以互联网和云计算为载体的“互联网+”式的软件开发方法逐渐成为各互联网公司的主流开发方式。为满足就业需求,现阶段的各层次的学校在软件开发教学方面大都在传统教学模式基础上应用软件开发案例教学平台,辅助教师教学与指导。
        本平台的开发使用了能够快速开发Spring应用的SpringBoot框架,以及具有数据双向绑定特点的Vue框架;收集了不同类型的软件开发案例,涉及不同的应用领域,培养学生对不同方向,不同的技术架构的开发都能够有深刻的理解,对技术体系有较全面的把握。案例教学平台融合大数据、人工智能、云计算和物联网等技术,使得教学案例能够衔接前沿技术,将软件开发教学培养和未来最具有发展潜力的行业紧密联系在一起。
        2 相关技术概述
        2.1 SpringBoot框架
        SpringBoot框架继承了Spring框架的优良特性并改善了Spring框架存在的弊端。它与传统的SpringMVC框架相比, SpringBoot简化了复杂的手动配置,实现自动配置,不需要XML等配置文件,降低项目搭建的复杂度[1]。同时它集成了大量常用的第三方库配置(例如Jackson、JDBC、MySQL等),SpringBoot对这些第三库可以直接调用,减少对第三方代码的编写,可以将更多的时间放到代码的业务逻辑上[2]。
        2.2 Vue框架
        Vue是一套构建用户界面的渐进式框架,采用自底向上增量式开发的设计方式。Vue以组件化思想和数据驱动为核心,通过运用虚拟DOM提升前端的性能,具有体积轻、开发效率高、数据双向绑定的特点。除此之外,框架拥有自身的庞大的生态系统,使其能够便于与第三方库进行整合[3]。
        3 平台功能设计
        本平台的主要功能是为学校开展软件开发课程提供辅助教学,使课程结合应用,更加生动。本平台主要分为两个角即用户角(教师和学生)、管理员角。根据角分为用户模块、管理员模块两个主要模块。
        与传统的教学软件相比,本平台是基于开放式,遵守开放共享的原则。用户模块不仅拥有传统教学软件所就有的功能,还具有自己独特的功能。用户不仅能进行注册、登录,对所需要的案例进行查询操作,并根据自己的需求进行预览和评论。而且还可以根据自己的需求对案例进行修改、上传。
        管理员模块主要是管理员登录后台管理界面进行管理,主要分为四个子模块,分别为用
户管理子模块、案例管理子模块、案例类型管理子模块、评论管理子模块。用户管理子模块主要进行用户的增加、删除、修改、查询、修改用户状态。案例管理子模块主要实现案例的增加、删除、修改、查询、评论案例等功能。案例类型管理子模块案例类型的增加、删除、修改、查询等功能。评论管理子模块主要根据用户对案例的评分和反馈意见进行数据可视化和分析,根据用户反馈的意见对案例进行完善。平台的主要模块与功能如图1所示。
        4 總体设计
        4.1 系统架构
        本平台采经典的MVC模式,M就是指业务模型,V是指用户界面,C是指控制器,此模式有利于前后端代码的分离[4]。后端采用的SpringBoot、MyBatis框架进行设计,该框架将后端分为Dao层、Service层、Controller层三层模式,其中Dao层与Service层就是业务模型的细分。Dao层主要是做数据持久层的工作,负责将与数据库进行联络的方法封装成接口(CURD接口),在Dao层的XML文件中编写对应方法的SQL语句对数据库进行访问,实现对数据的增加、删除、修改、查询等任务。Service层主要负责编写平台的业务逻辑,负责相应功能的设计,调用Dao层接口,接收Dao层返回的数据,完成项目基本功能的实现。Contr
oller层即控制层,主要功能是请求和响应控制,主要负责前后端交互,接收前端发送的请求,调用Service层的定义的方法,接收Service层返回的数据,最后将封装好的JSON数据返回到前端视图层进行展示。前端运用Vue框架进行设计,其界面就是指视图层(View层)。View层主要任务是与用户进行交互,通过浏览器,负责获取用户相关的访问请求和信息,将访问请求提交到后端控制层,以及接收从后端传输的数据。平台的整体架构设计如图2所示。
        4.2 数据库设计
        数据库设计是指对于一个给定的应用环境,构造出最优的数据库模式,建立数据 库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求[5]。本平台数据库表主要由用户表(b_user)、管理员表(b_admin)、案例类型表(b_casetype)、案例表(b_case)、评论表(b_message)组成。
        用户实体类是整个平台最核心的内容,主要包括用户ID(id)、用户名(username)、密码(password)、手机号(phone)、用户状态(state)、邮箱(email)等属性,其state为布尔类型,state为true则状态为可启用,state为false则状态为
不可用。此外,还需要通过用户名与密码属性进行登录判断和拦截。案例类型实体类,主要由类型ID(id)、类型名称(typeName),类型简介(account)组成。增加此实体类是方便管理员对案例进行管理和分类,方便用户按照特定的分类进行查询。作为一个案例教学平台,案例是最主要的元素,将案例抽象为一个实体类,案例实体类主要包括主案例名称(casename)、作者(author)、类型(tid与案例类型ID相关联)、案例简介(account)、案例附件(casepath)、案例状态(state)等属性。其中state为布尔类型,用户提交新的案例,管理员将进行审核,state为flase代表审核中;state则变为true则审核通过。评论实体类与案例实体类是多对一的关系,根据案例ID设置约束进行关联。评论实体类主要包括,评论ID(id)、案例ID(cid与案例ID相关联),评论人(cname)、评论内容(account)、评分(grade)、满意程度(satisfaction)等属性。其整体E-R图如图3所示。
java spring框架搭建
        4.3 系统安全设计