尚硅谷_毕设项目系列教程_智慧校园管理系统

尚硅谷_毕设项目系列教程_智慧校园管理系统

一 毕设项目展示

1 登录及角色控制在这里插入图片描述

2首页展示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MiNohvaK-1665310063989)(images/1649385122247.png)]

3 业务模块展示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tEWQcrvh-1665310063990)(images/1649385173120.png)]

二 智慧校园系统简介

2.1 项目简介

智慧校园管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTML+CSS+VUE来实现页面效果展示,后端采用SpringBoot+MybatisPlus框架实现数据存储等服务。存储层使用高性能的MySQL,服务器使用SpringBoot内置的Tomcat9.x,项目构建工具使用Maven来管理jar包和项目构建。

2.2 项目模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EqfmzChw-1665310063991)(images/%E9%A1%B9%E7%9B%AE%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D.png)]

2.3 技术栈

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ien7VzRk-1665310063992)(images/1646297696190.png)]

VUE
是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 前后端分离是目前一种非常流行的开发模式,它使项目的分工更加明确:后端:负责处理、存储数据. 前端:负责显示数据 前端和后端开发人员通过 接口 进行数据的交换。
Spring
 Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
 Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC
 SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
mybatis-plus
 mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。MyBatis-plus就是在MyBatis的基础上,为Mapper接口,Service层提供一些比较全面的CURD的业务逻辑功能,使程序员可以减少在Mapper和Service层的代码编写

MVC项目架构

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

2.4 软件环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hfrn7BSN-1665310063993)(images/1646728754228.png)]

2.4.1 安装数据库

1. 开放源代码

MySQL最强大的优势之一在于它是一个开放源代码的数据库管理系统。开源的特点是给予了用户根据自己需要修改DBMS的自由。MySQL采用了General Public License,这意味着授予用户阅读、修改和优化源代码的权利,这样即使是免费版的MySQL的功能也足够强大,这也是为什么MySQL越来越受欢迎的主要原因。

2. 跨平台

MySQL可在不同的操作系统下运行,简单地说,MySQL可以支持Windows系统、UNIX系统、Linux系统等多种操作系统平台。这意味着在一个操作系统中实现的应用程序可很方便移植到其他操作系统下。

3. 轻量级

MySQL的核心程序完全采用多线程编程,这些线程都是轻量级的进程,它在灵活地为用户提供服务的同时,又不会占用过多的系统资源。因此MySQL能够更快速、高效的处理数据。

4. 成本低

MySQL分为社区版和企业版,社区版是完全免费的,而企业版是收费的。即使在开发中需要用到一些付费的附加功能,价格相对于昂贵的Oracle、DB2等也是有很大优势的。其实免费的社区版也支持多种数据类型和正规的SQL查询语言,能够对数据进行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满足开发需求了,而对数据库可靠性要求比较高的企业可以选择企业版。

社区版与企业版主要的区别是:

□ 社区版包含所有MySQL的最新功能,而企业版只包含稳定之后的功能。换句话说,社区版可以理解为是企业版的测试版。

□ 官方的支持服务只是针对企业版,如果用户在使用社区版时出现了问题,MySQL官方是不负责任的。

官网下载社区版安装包

​ 官方下载网址是:https://dev.mysql.com/downloads/mysql/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xp9VAJBh-1665310063994)(images/1646613444481.png)]

MySQL Installer for Windows:MySQL8的windows安装版下载。点击GO to Download Pages>前往下载。入下图所示:

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lU2sfnWC-1665310063994)(images/1646613466909.png)]](https://img-blog.csdnimg.cn/0ae3a7c935934ab78e0f62c447873cfb.pn

此处选择Windows (x86, 32-bit)MSI Installer版本,在32-bit、64位系统下均可运行。下载后如下图所示。

在这里插入图片描述

双击MySQL安装文件mysql-installer-community-8.0.18.0.msi,出现安装类型选项。

  1. Developer Default:开发者默认

  2. Server only:只安装服务器端

  3. Client only:只安装客户端

  4. Full:安装全部选项

  5. Custom:自定义安装

初学者建议选项为Developer Default、Server only,熟悉MySQL的用户可以选择Custom选项。此处选择Server only。安装最快,内容够用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7fRF22w4-1665310063996)(images/1646612661931.png)]

如果选择custom选项,就需要从左边可用产品列表available Product中选择需要安装的选项,加入到右边的要安装产品列表 Product/Features to be Installed中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X5pkdSTG-1665310063998)(images/1646612689356.png)]

进入Installation窗口,发现只有MySQL Server一个product。点击Execute按钮进入安装过程,会显示进度条,完成后点击Next按钮继续。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RJL4rKO-1665310063998)(images/1646612734879.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PFJMx9W0-1665310063999)(images/1646612751102.png)]

进入产品配置向导,配置多个安装细节,点击Next按钮即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hNKgUUOG-1665310064000)(images/1646612866172.png)]

高可靠性High Availability,采用默认选项即可。

  1. Standalone MySQL Server/Classic MySQL Replication:独立MySQL服务器/经典MySQL复制

  2. InnoDB Cluster:InnoDB集群

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FykGEt3l-1665310064000)(images/1646612932002.png)]

类型和网络 Type and Networking,采用默认选项即可。记住MySQL的监听端口默认是3306。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1wj7Paal-1665310064001)(images/1646612966473.png)]

身份验证方法Authentication Method,采用默认选项即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UXHB0BA1-1665310064002)(images/1646613017528.png)]

账户和角色 Accounts and Roles。MySQL管理员账户名称是root,在此处指定root用户的密码。还可以在此处通过Add User按钮添加其他新账户,此处省略该操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1Fvzmvv-1665310064003)(images/1646613110179.png)]

Windows服务:Windows Service。

​ Configure MySQL Server as a Windows Service:给MySQL服务器配置一个服务项。

​ Windows Service Name:服务名称,采用默认名称MySQL80即可。

​ Start the MySQL at System Startup:系统启动时开启MySQL服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wuukqRM-1665310064004)(images/1646613165149.png)]

Apply Configuration:点击Execute按钮执行开始应用这些配置项。

​ Writing configuration file: 写配置文件。

​ Updating Windows Firewall rules:更新Windows防火墙规则

​ Adjusting Windows services:调整Windows服务

​ Initializing database:初始化数据库

​ Starting the server: 启动服务器

​ Applying security setting:应用安全设置

​ Updating the Start menu link:更新开始菜单快捷方式链接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YoeYozzC-1665310064004)(images/1646613234370.png)]

执行完成后,如下图所示。单击Finish完成安装,进入产品配置环节。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ti10peeS-1665310064004)(images/1646613265138.png)]

产品配置Product Configuration到此结束:点击Next按钮。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tq0Ey6Xg-1665310064005)(images/1646613326986.png)]

安装完成 Installation Complete。点击Finish按钮完成安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hE5JBx3s-1665310064005)(images/1646613357464.png)]

启动和关闭MySQL服务

win+r 输入 services.msc 查看Windows服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hBzntGno-1665310064006)(images/1646613680202.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AppATPWa-1665310064007)(images/1646613648631.png)]

检查mysql默认的安装位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DD7yk7FR-1665310064007)(images/1646613727871.png)]

配置环境变量

设置环境变量path,增加MySQL8的执行文件的路径,访问该目录下文件无需cd到该目录下,路径为:C:\Program Files\MySQL\MySQL Server 8.0\bin。注意:使用分号;分割path中各个路径。

path:C:\Program Files\MySQL\MySQL Server 8.0\bin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Czmw0eER-1665310064008)(images/1646613828367.png)]

登录mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SuA69Tqk-1665310064008)(images/1646613863246.png)]

2.4.2 安装数据库客户端工具

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。你可以快速轻松地创建、管理和维护数据库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J2xpkwvs-1665310064009)(images/1646613934105.png)]

直接解压安装包,拷贝到合适目录下,双击其中的navicat.exe,即可开始运行。打开后选择 连接工具按钮----连接,输入四个连接连接参数,并进行测试,结果提示连接失败,报2059异常。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fqCvwYXT-1665310064009)(images/1646614120164.png)]

该错误的原因是在MySQL8之前版本中加密规则mysql_native_password,而在MySQL8以后的加密规则为caching_sha2_password。解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。此处采用第二种方式。

设置密码永不过期

alter user ‘root’@‘localhost’ identified by ‘root’ password expire never;

设置加密规则为mysql_native_password

alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘root’;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRSvpbXf-1665310064010)(images/1646614233972.png)]

重新访问navicat,提示连接成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j4E3hjo9-1665310064010)(images/1646614199341.png)]

安装完成连接mysql

1、输入连接ip地址,用户名和密码,如果连接成功,则表示mysql安装没有问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ezHmpt3-1665310064011)(images/1646113756316.png)]

2.4.3 安装JDK

JDK详细教程请参考尚硅谷官方免费教程

http://www.atguigu.com/download_detail.shtml?v=129

https://www.bilibili.com/video/BV1Kb411W75N?p=30

版本:java1.8

验证安装是否成功

1、打开cmd窗口

2、输入java –version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kLr4gpm2-1665310064011)(images/1646113467494.png)]

2.4.4 安装IDEA

建议使用IntelliJ IDEA 2019.2 x64及以上版本

IntelliJ IDEA详细使用教程请参考尚硅谷官方免费教程

http://www.atguigu.com/download_detail.shtml?v=11

https://www.bilibili.com/video/BV1PW411X75p?p=4

2.4.5 安装Maven

Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建依赖管理支持的工具。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hnJRP7Dk-1665310064012)(images/1637889444471.png)]

Maven的下载

下载地址:http://maven.apache.org/

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0PslbWFR-1665310064013)(images/clip_image002.jpg)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-idQepvn3-1665310064013)(images/clip_image002-1637895976892.jpg)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fh4S4hDG-1665310064013)(images/clip_image002-1637895989034.jpg)]

Maven的环境变量配置

检查JAVA_HOME环境变量。Maven是使用Java开发的,所以必须知道当前系统环境中JDK的安装目录。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ocf7gxI6-1665310064014)(images/1637890580346.png)]

解压Maven的核心程序

将apache-maven-3.6.3-bin.zip解压到一个非中文无空格的目录下。例如

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RrAKmggp-1665310064014)(images/1637890745386.png)]

配置Maven的环境变量

  • MAVEN_HOME
D:\apache-maven-3.6.3
  • path
%MAVEN_HOME%\bin

Maven:MAVEN_HOME(低版本中使用MAVEN_HOME,高版本中推荐使用M2_HOME)

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4jsAlLa9-1665310064015)(images/clip_image002-1637896070880.jpg)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxDbeypD-1665310064015)(images/clip_image001.png)]

验证Maven安装是否正确

  • 使用下面的指令在DOS上验证maven安装是否成功

  • mvn -v或者mvn -version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tR9FKy3P-1665310064015)(images/1637891002215.png)]

配置Maven本地仓库

​ Maven的核心程序并不包含具体功能,仅负责宏观调度。具体功能由插件来完成。Maven核心程序会到本地仓库中查找插件。如果本地仓库中没有就会从远程中央仓库下载。此时如果不能上网则无法执行Maven的具体功能。为了解决这个问题,我们可以将Maven的本地仓库指向一个在联网情况下下载好的目录。Maven默认的本地仓库:.m2\repository目录(表示当前用户的家目录)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AddU4IPc-1665310064016)(images/1637891817365.png)]

配置Maven中央仓库为国内的阿里云

  • 接下来我们需要配置maven镜像,如果我们不配置,我们下载jar包是从国外下载的,下载速度很慢,所以我们配置一下国内的阿里云镜像
<mirror>
   <id>nexus-aliyun</id>
   <mirrorOf>central</mirrorOf>
   <name>Nexus aliyun</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evekOLXy-1665310064016)(images/1637891927479.png)]

配置Maven全局JDK版本

接下来我们可以为maven配置全局的jdk,这样我们在创建maven项目时就会自动使用该jdk版本,目前推荐jdk1.8

	<profile>
		<id>jdk-1.8</id>
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.8</jdk>
		</activation>
		<properties>
			<maven.compiler.source>1.8</maven.compiler.source>
			<maven.compiler.target>1.8</maven.compiler.target>
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
		</properties>
	</profile>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oh2ytQ0h-1665310064016)(images/1637892137110.png)]

查看Idea自带Maven插件

Idea中其实自带Maven插件,而且我们也可以给自带的Maven插件进行配置,所以我们可以使用自带的Maven,也可以使用我们安装的Maven核心程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xGzzBI4V-1665310064017)(images/1637892717973.png)]

设置Maven自动导包

设置Maven自动导包,勾选次选项时,每次添加依赖maven都会给我们立刻自动导入,但是我们往往不勾选,每次添加新的依赖时我们手动集中导入一次. 在比较新新的Idea中已经没有该选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-62H81M0D-1665310064018)(images/1637892684633.png)]

Idea中配置使用我们自己安装的Maven插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mgp9lQNa-1665310064019)(images/1637892864668.png)]

优化Maven的Runner参数

优化配置:-DarchetypeCatalog=internal 每次创建项目时,IDEA要使用插件进行创建,这些插件当创建新项目时,它每次都会去中央仓库下载,这样使得创建比较慢。应该在创建时让它找本地仓库中插件进行创建项目。(-D代表属性,后面是key=value的形式配置参数)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ovD9rGhp-1665310064020)(images/clip_image002-1637898064778.jpg)]

注意:某些版本的Idea在设置了Maven之后,每次创建一个项目的时候都会失效!!! 如2019.2.4版本,所以大家以后每次创建Maven项目的时候一定要检查一下Idea的Maven配置

上述配置也可以在 other settings > Settings for New Project中进行

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C7YFRBPJ-1665310064020)(images/clip_image001-1637898297404.png)]

2.4.6 安装Tomcat

只需要解压,最好目录中不要出现中文。目前使用SpringBoot内置Tomcat即可

三 智慧校园系统功能开发

3.1 项目搭建

3.1.1 使用IDEA的SpringBoot脚手架创建一个Maven项目

创建新项目 选择Spring Initializr

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4XalfY2D-1665310064021)(images/1646278072789.png)]

填写 group和artiface 选择JAVA version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3RXVHcHB-1665310064021)(images/1646278651701.png)]

添加组件和选择SpringBoot版本,暂时使用默认即可,后面我们自己添加项目依赖和修改SpringBoot版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmeqdHP3-1665310064022)(images/1646278230851.png)]

查看项目名以及项目的存放路径, 然后finish

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghPgHqY1-1665310064022)(images/1646278677696.png)]

创建完毕后,检查项目的Maven配置,安装Lombok插件,启动注解处理,然后重启idea

  1. Lombok插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rj9FEOYj-1665310064023)(images/1646278893046.png)]

  1. 开启注解处理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7euqQKpO-1665310064023)(images/1646278859312.png)]

  1. 检查maven配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNAfszYD-1665310064024)(images/1646278823032.png)]

3.1.2在pom.xml中到导入相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<!-- 继承方式使用SpringBoot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> 
    </parent>

    <artifactId>zhxy</artifactId>
    <groupId>com.atguigu</groupId>
    <packaging>war</packaging>
    <modelVersion>4.0.0</modelVersion>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--单元测试启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- thymeleaf支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!--  mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>

        <!-- 简化POJO实体类开发 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!--swagger ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!--swagger2  增强版接口文档-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.4</version>
        </dependency>


        <!--开发者工具-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.29</version>
        </dependency>

        <!-- JWT生成Token-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.7.0</version>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <!--spring boot maven插件 , 可以将项目运行依赖的jar包打到我们的项目中-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3.1.3 准备项目结构

  1. java目录下

    1. config : 项目的配置类
    2. controller: 控制层
    3. mapper : 持久层接口
    4. pojo : 实体类
    5. service: 服务层
    6. util: 工具类包
    7. ZhxyApplication : 启动类
  2. resources目录下

    1. mapper :持久层映射文件
    2. public/upload:文件上传目录
    3. static: 静态资源目录
    4. application.yml :SpringBoot核心配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Jy7jbsQ-1665310064024)(images/1646279611127.png)]

3.1.4准备application.yml配置文件

server:
  port: 9001
spring:
  #解决SpringBoot2.6.0与swagger冲突问题【原因是在springboot2.6.0中将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错,解决办法是切换回原先的AntPathMatcher】
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
  #配置数据源
  datasource:
    #配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    #配置数据库连接属性
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/sgg_zhxy_db?characterEncoding=utf-8&serverTimezone=GMT%2B8&userSSL=false
    username: root
    password: root
    #url: jdbc:mysql://r2czkq1vewxat78mnyg60oisurj5h4dp.mysql.qingcloud.link:3306/ssg_zhxy_db?characterEncoding=utf-8&serverTimezone=GMT%2B8&userSSL=false
    #username: shangguigu
    #password: shangguigu@QY123
    #mybatis-plus内置连接池
    hikari:
      connection-test-query: SELECT 1
      connection-timeout: 60000
      idle-timeout: 500000
      max-lifetime: 540000
      maximum-pool-size: 12
      minimum-idle: 10
      pool-name: GuliHikariPool
  thymeleaf:
    #模板的模式,支持 HTML, XML TEXT JAVASCRIPT
    mode: HTML5
    #编码 可不用配置
    encoding: UTF-8
    #开发配置为false,避免修改模板还要重启服务器
    cache: false
    #配置模板路径,默认是templates,可以不用配置
    prefix: classpath:/static/
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  servlet:
    #设置文件上传上限
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
mybatis-plus:
  configuration:
    #添加日志支持
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:/mapper/**/*.xml

3.1.5准备分页插件的配置类

package com.atguigu.zhxy.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.atguigu.zhxy.mapper")
public class MpConfig {
   

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
   
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // paginationInterceptor.setLimit(你的最大单页限制数量,默认 500 条,小于 0 如 -1 不受限制);
        return paginationInterceptor;
    }


}

3.1.6 准备Swagger2的配置类

package com.atguigu.zhxy.config;

import com.google.common.base.Predicates;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

/**
 * Swagger2配置信息
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {
   

    @Bean
    public Docket webApiConfig(){
   

        //添加head参数start
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder tokenPar = new ParameterBuilder();
        tokenPar.name("userId")
                .description("用户ID")
                .defaultValue("1")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();
        pars.add(tokenPar.build());

        ParameterBuilder tmpPar = new ParameterBuilder();
                tmpPar.name("userTempId")
                .description("临时用户ID")
                .defaultValue("1")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();
        pars.add(tmpPar.build());
        //添加head参数end

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                //可以测试请求头中:输入token
                
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值