管理系统设计开发与学习

目录

封面

一.内容简介

二.技术概述

1.Spring Boot

2.MVC模式

3.数据库技术

4.Web前端技术

5.对接技术

四.体系架构

设计架构

系统分层

系统结构

五.数据库的设计

六.开发准备

开发工具

开发环境

七.学习总结

八.学习心得

一.内容简介

基于SpringBoot和KAQ模型的大学生成长平台,旨在帮助大学生提高综合素质,培养能力、知识和品质。基于以下相关技术进行理论学习,为日后开发做好准备。

1.系统架构设计:根据需求分析,设计系统的整体架构。前端采用Vue.js主流前端框架,后端采用SpringBoot作为开发框架,数据库使用MySQL。

2.搭建开发环境:配置好Java、SpringBoot、MySQL等开发环境,确保能够顺利进行后续的开发工作。

3.数据库设计:根据需求,设计数据库表结构,包括用户表、课程表、实践活动表、社区帖子表等。

4.前后端开发:利用SpringBoot框架,开发后端接口,实现用户注册、登录、课程学习、实践活动发布、社区交流等功能;利用Vue.js前端框架,开发前端页面,实现用户的操作界面。

5.接口对接:将前端页面与后端接口进行对接,确保系统能够正常运行。

二.技术概述:

1.Spring Boot 

Web开发经过多年的技术选型,Spring Boot渐渐进入开发者的视野,成为目前很多大公司进行Web开发的必选技术。 Spring Boot框架是由Pivotal团队所开发的。使用该框架可以迅速构建出一个能够独立运行、准生产级别的基于Spring技术的项目。它提供了以下核心功能:

  1. 自主运行的项目:Spring Boot可以将开发完成的程序直接打包成jar     包来运行,跟平时运行java项目没什么区别。

(2)内部提供了servlet容器:Spring Boot框架内部提供了Tomcat等servlet容器,使项目的部署变得更加方便。

(3)减少配置:Spring Boot采用“约定大于配置的理念”,开发人员能够尽可能少地编辑配置文件。

当然,在一些特殊的开发环境下,有些配置还是需要开发人员手动进行的。 Spring Boot框架的核心模块是由Spring框架提供的,Spring提供对控制反转、面向切面的编程AOP、容器管理、MVC框架、事务管理和异常处理的支持。Spring框架由核心容器(Core Container)模块、面向切面编程(AOP和Aspects)模块、数据访问/整合(Data Access/Integration)模块、Web模块和测试(Test)模块组成。

管理系统设计开发与学习_第1张图片

  1. 测试模块:实现应用程序的测试需求,支持开源测试框架Junit,访问以及相关Web服务。
  2. Web模块:提供了应用开发所需要的基础功能,包括支持多种格式的文件上传、远程过程发送和接受服务的支持。
  3. 事务模块:实现Spring框架中的事务管理功能,对象关系模型的支持。
  4. OXM模块:支持数种开源对象XML模型框架。
  5. JMS模块:提供对消息数据访问/整合模块中,JDBC实现一个通用的Java数据库连接模板。
  6. ORM模块:提供对耦合,指针对项目开发过程中的某一步骤或者阶段进行提取,实现业务处理过程各个阶段之间的低面向切面编程(AOP和Aspects)模块提供对面向切面编程的实现。面向切面的编程是Language模块提供对表达式语言的支持,功能并提供对应用资源的绑定、数据验证和国际化等特性的支持。
  7. Spring Expression 括服务器的资源访问和一些常见的工具类。
  8. Spring Context模块:集成了Spring Beans模块的(IOC)和依赖注入(DI)的实现。
  9. Spring Core模块:实现Spring框架的最基础部分,主要包核心容器模块。
  10. Spring Beans模块:实现Spring框架的核心部分,主要包括对控制反转。

2.MVC模式

MVC是一种软件的设计规范,用一种将页面、业务逻辑和数据库分离的模式来编写代码。MVC其实就是Model、View与Controller三个单词的缩写,分别代表着模型、视图页面与控制器。其中,模型是系统中用于处理应用程序数据逻辑的部分;视图页面是用户在使用中能直观感受到的模块,常用的视图页面包含了JSP、freeMarker和Thymeleaf等技术;控制器是系统中处理用户交互的部分。MVC模式的工作流程如下:

管理系统设计开发与学习_第2张图片

它的工作流程大致是这样的:用户在进行业务操作时会给控制器发出指令,控制器将这些指令以及相关数据传送给模型,模型根据这些指令对业务逻辑进行判断并且与数据库进行交互,完成后根据业务逻辑选择不同的视图页面并发送处理完的数据,视图页面将处理完的结果通过前端技术展现给用户。在此,Spring提供了一款出色的基于MVC模式的框架——SpringMVC。

3.数据库相关技术

3.1 My SQL

MySQL已经成为世界上最受欢迎的数据库管理系统之一。无论是用在小型项目开发上,还是用来构建那些声名显赫的网站,MySQL都已经被证明是一个稳定、可靠、快速和可信的系统,足以满足任何数据存储业务的需求。 MySQL在世界范围内得到了广泛的使用,它有如下特点:

(1)成本低:MySQL是开放源代码的,一般可以免费使用,甚至可以免费修改。

(2)性能高:MySQL的执行速度非常快。

(3)可信赖:目前世界上很多大型的公司或者网站都使用了MySQL作为其数据库管理系统,并且用其处理非常重要的数据。

(4)易操作:MySQL安装和使用非常方便。 

3.2 My Batis

MyBatis3之前的版本叫ibatis,原本是Apache下的一个项目,后来被谷歌公司托管,随即改名为MyBatis。MyBatis是一款非常优秀的持久层框架,所谓持久层框架,就是负责与数据库进行交互的框架。持久层的技术有很多,例如JDBC、Hibernate和MyBatis等。下面将各种持久层技术的使用流程进行对比来说明使用MyBatis的好处:

(1)JDBC

管理系统设计开发与学习_第3张图片

传统的JDBC技术使用起来非常复杂,大致要经历编写sql语句、预编

译、设置参数、执行sql语句和封装结果这五个步骤。它可以实现的功能非常少,而且采用了硬编码、高耦合的方式,将sql语句编写在java代码中,使后期维护变得非常困难。

  1. Hibernate

管理系统设计开发与学习_第4张图片

Hibernate是一个全自动ORM框架,ORM框架将javaBean对象映射到数据库中的每一条记录,使它们一一对应。如上图所示,Hibernate也需要经历与JDBC相同的步骤,不过与JDBC不同的是,Hibernate将这些步骤全部封装起来进行黑箱操作,用户感觉不到经历了这些步骤,所以称之为全自动框架。但是,Hibernate将编写sql语句也封装了起来,由框架自己发送sql语句,这样便造成了sql语句无法优化的后果。而且,几乎所有的项目都需要使用到一些复杂的定制sql语句,要想使用Hibernate达到这个目的,则必须要对Hibernate提供的HQL语句非常精通,这无疑又增加了开发者的学习负担。

(3)MyBatis

管理系统设计开发与学习_第5张图片

MyBatis是一个半自动的ORM框架。如上图所示,MyBatis与Hibernate最大的不同就是它将编写sql语句抽取出来并以配置文件的形式呈现,即将sql语句单独写在配置文件中。这就改变了Hibernate中由框架发送sql语句的做法,而将这个权力交给了开发者。这样使sql语句与java编码分离,方便后期维护。使用MyBatis只需要掌握sql语句的使用,无须学习其他的语句,减轻了开发者的学习负担。

4.Web前端技术

Web前端就是展现给用户的部分,即客户端或者浏览器端的部分。在一个基本管理系统的开发中主要使用了如下Web前端技术:

语言:

  1. JavaScript:它是一种直译式的脚本语言,是一种动态类型、弱类型、基于原型的语言,广泛用于客户端的脚本语言中。最早是在HTML网页上使用,可以给HTML网页增加动态功能。

(2)Ajax:它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。Ajax在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。例如,在网站注册的时候,有时输入用户名后,网页上会提示该用户名已被注册,这种效果就是通过Ajax来实现的,全程没有经过页面的跳转。

(3)CSS:它是网页的“装饰工”,通常使用html技术编写的网页十分单调,CSS可以给网页增加样式,增强用户的体验。

(4)html5:它是万维网的核心语言,用来编写Web网页。

(5)iframe:它的作用是将整个页面分成不同的框架,每个框架中都可以加载一个网页,实现了网页的嵌入。

(6)bootstrap:它将一些html5/CSS进行了简单的封装,使用bootstrap后,开发者可以在没有美工的修饰下做出漂亮的网页。

框架:

Vue.js 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。简单来说,其实Vue就是用尽量简单的API来实现响应的数据绑定和组合的视图组件,所以我们在实际看Vue的实例,就会发现它的逻辑实现方法不是传统的先有HTML元素,再通过JavaScript来操作DOM;它恰好是反过来的,是先有Vue的逻辑,然后通过关键字绑定对应的HTML元素,并不操作实际的DOM,而是虚拟DOM。由于web是本学期选修课,故在此不再进行学习。

  1. 对接技术

“前后端对接”涉及将前端和后端协调工作,以实现应用程序的完整功能。这包括通过API(应用程序编程接口)或其他通信方式进行数据交换、数据验证、身份验证和授权,以及确保前端和后端的数据和状态同步。通常情况下,前后端之间的交互是通过HTTP协议进行的。HTTP(Hypertext Transfer Protocol)是一种用于在客户端和服务器之间传输数据的协议,广泛用于Web应用程序中。通过HTTP,前端可以向后端发起请求,并接收来自后端的响应。

对接中关于http的关键点,前端需要经常请求的信息就是http请求:

  • 请求消息(HTTP Request Message):
  • 请求行(Request Line):包括请求方法(GET、POST、PUT,DELETE等)、请求的资源路径(URL)和协议版本(HTTP/1.1等)。
  • 请求头部(Request Headers):包含关于请求的元信息,如User-Agent(用户代理)、Host(主机)、Content-Type(内容类型)等。
  • 空行(Empty Line):请求头部与消息主体之间需要有一个空行。
  • 消息主体(Message Body):可选的,包含发送到服务器的数据,通常在POST请求中使用,例如表单数据或JSON数据。

前端中我们需要经常对请求头,请求体,以及请求方式进行修改处理,最后发送到后端接口处。后端收到前端发送的请求后,会根据请求的头部(Headers)、正文(Body)和请求方式(Method)进行相应的处理。

一旦后端处理完请求,它会根据业务逻辑返回相应的响应。响应可能包括状态码、响应头和响应体。

四.体系架构:

在系统的概要设计阶段,需要确定系统的结构。确定一个系统的结构需要从多个层面入手。以下将从系统的设计架构、系统分层以及系统的包结构三方面来介绍。

设计架构:

采用了B/S架构,即浏览器/服务器架构。在这种架构下,用户通过浏览器输入地址来进入系统,大部分的业务处理任务放在服务器端,浏览器端只进行少部分的业务处理。使用B/S架构可以有以下好处:

(1)可以省去客户端的开发,减少了开发系统的工作量;在后期维护中,由于所有的客户端均为浏览器,所以只需要对服务器进行维护,降低了维护的难度。

(2)B/S架构中的各部分组件相对独立,因此采用该架构的系统具有非常好的重用性。

(3)B/S架构建立在广域网上,不需要使用特定的硬件来提供专门的网络环境。

系统分层:

在对系统架构设计完成的基础上,使用MVC模式对系统进行分层,将整个系统分成表现层、业务逻辑层和数据访问层。

系统各层之间相互独立,在对于各层的设计中可以不用考虑其他层。每层的分工十分明确:

表现层要求将页面设计得美观、简洁,符合用户需求,增强用户体验。

业务层主要负责对业务进行处理,实现相应的功能。

数据访问层不包含任何对业务的处理,只负责与数据库中的实体进行交互,即对数据库中的表进行增删改查。

最初展现在用户面前的是登录页面,当用户登录后便会进入包含着许多业务的主页面;当用户操作某个业务时,系统就会向服务器发出请求,服务器便会调用业务逻辑层来对该请求所代表的业务进行处理,处理完成后服务器将处理的结果返回给表现层中的页面;在业务逻辑层进行处理的过程中,常常需要底层数据库的信息,这时数据访问层便会从数据库获取相应的信息并将这些信息传送给业务逻辑层使用。

系统结构:

系统的包结构依据系统的层次结构而设计。其中pojo包主要存放系统所有的实体类,这些类与数据库中的表一一对应;controller包主要存放系统中的控制器;service包主要存放业务逻辑的接口与其实现类;dao包主要存放数据访问层的相关接口,由于一般会使用Mybatis作为系统的ORM框架,所以DAO层中接口的实现类由该框架根据Mapper包中的配置文件自动生成;前端的页面、js代码以及CSS样式等放在系统根目录下的resource包中。系统中各种包之间的调用关系如下图所示:

管理系统设计开发与学习_第6张图片

五.数据库的设计

在明确了系统的功能模块以及整体结构之后,就需要对系统的数据库进行设计。数据库是整个系统的根基,数据库的设计最少需要占用整个系统开发的三成以上的时间。若在确定系统需求后就想急功近利,直接进入编码阶段,最后只能是得不偿失:轻则需要对数据库进行大量修改,重则导致项目开发无法进行。在设计数据库时要遵守“三少”的原则,即在实现系统设计目标的前提下使数据库中的表、每张表中的主键数量以及每张表中的字段数量尽可能地少。这样可以避免在系统编码阶段中因数据库的修改而导致开发过程的中断,使系统的开发更加流畅。

数据库E-R图的设计:数据库的E-R图即实体-联系图,E-R图能够很好地反映出数据库中的实体、实体的属性和各实体之间的联系,是对系统数据库的总体概括。E-R图有实体、属性和关系这三个要素,分别用矩形、椭圆形和菱形来表示。

数据表的设计:根据系统功能模块的设计以及数据库的E-R图可以设计出详细的数据表。  

六.开发准备

主要介绍系统开发前所需要做的一些准备工作,包括开发工具的选择以及开发环境的搭建。

开发工具:

(1)系统一般使用sts(Spring Tool Suite)来开发,这款开发工具是在Eclipse的基础上,将Spring技术集成在其中,使用sts工具可以很大程度地减少项创建的工作量。

(2)系统开发中一般使用谷歌公司的Chrome浏览器,该浏览器具有简洁、快速和不易崩溃等特点。

(3)系统一般使用navicat作为数据库处理工具。

开发环境:

管理系统设计开发与学习_第7张图片

开发中将MVC模式与系统的三层结构结合起来,在三层结构的基础上融入MVC模式中的控制器,即多加入一个控制层。

控制层的作用不是处理具体的业务逻辑,而更像是一个“连接器”,将系统的表现层与业务逻辑层和数据访问层连接起来。

表现层要实现某种业务时会先向控制层发送请求,SpringMVC框架会根据请求的地址找到控制层中与该地址相映射的方法,控制层中的方法并不进行业务的处理,而是通过在其中调用业务逻辑层的方法来完成具体的业务逻辑,之后会将所有页面需要的数据信息进行“加工”和“打包”并传回页面使用。

业务逻辑层要处理具体的业务则需要对数据库进行访问,该层也不直接与数据库交互,而是通过调用数据访问层(或DAO层)接口中的具体方法,由于系统一般使用Mybatis技术,即将sql语句单独写在了xml文件中,所以系统会自动根据调用的DAO层接口的方法名寻找相应的sql语句实现对数据库的访问。

接着初始化时窗下拉菜单,采用Ajax技术:在页面的js文件中向后台发送Ajax请求;通过请求地址找到控制层中相关类的init()方法;接着调用业务逻辑层相关接口的init()抽象方法.将数据存储在数据库中,会调用了DAO层demo_timesMapper接口中的selectIsState()方法,Mybatis根据方法名在mapper包里的demo_timesMapper.xml文件中找到相应的sql语句。至此,从页面顶层到数据库底层的信息调用完成,接下来系统要做的就是将从底层数据库获得的数据逐层“加工”并返回,直到控制层将所有有用的数据传回页面,页面通过相关前端技术将所有时窗信息加载到下拉菜单中。使用Ajax技术后使得上述过程不需要经过页面的跳转,页面采用异步传输的方式获取信息。

七.学习总结:

主要介绍了开管理系统所涉及到的一些相关技术。首先对Spring Boot技术进行详细介绍;然后根据流程图简单说明了MVC模式的具体工作流程;接下来介绍了数据库相关技术,主要介绍了开发中使用到的MyBatis框架,并将该框架与其他ORM框架的工作流程进行比较,突出了使用MyBatis的好处;最后简单介绍了一些Web前端技术以及对接技术。

  • 学习心得:  

此次学习,是一个从完全没有开发概念到逐渐有了相应的理论基础的过程,是从0到1的过程,收获颇多。虽然技术方面还未进行系统的学习,只会某一模块的一丢丢,但是这为日后的开发提供了理论基础,也做好了铺垫,我也坚信未来的路途是坎坷曲折的,只有保持一颗学习的心,一种积极向上的理念,才能够拨开云雾见天日!最后也诚挚地感谢老师一个学期的辛勤讲解!

             

你可能感兴趣的:(JAVA,spring)