Spring 项目 实战基础 4_第1页
Spring 项目 实战基础 4_第2页
Spring 项目 实战基础 4_第3页
Spring 项目 实战基础 4_第4页
Spring 项目 实战基础 4_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目6“彩云之南-文旅驿站”项目后端开发01【学前导读】【学前导读】本项目将详细介绍“彩云之南-文旅驿站”项目的后端实现,包括后端项目的初始化、数据库设计、接口实现和异常处理。项目将通过SpringBoot和MyBatis,展示后端接口的具体实现。同时,项目将介绍后端项目的部署和测试流程,确保其稳定性和可靠性。02【学习目标】【学习目标】理解后端开发的基本概念和主要组件;掌握SpringBoot和MyBatis的基本用法;了解后端项目的部署和测试流程;能够通过实际案例分析后端实现的关键步骤。03【课程思政】【课程思政】通过后端开发过程中的自主学习,培养学生独立自主的意识;强调在开发过程中注重数据安全和用户隐私保护,培养学生的社会责任感;通过团队合作完成后端开发,培养学生的协作能力和沟通技巧。“彩云之南-文旅驿站”项目的后端开发采用了SpringBoot和MyBatis技术,旨在构建一个高效的旅游信息管理平台。项目的整体架构划分为多个层次,包括Controller、Service、Repository和Model层,每层都有其特定的职责,从而确保系统的模块化和可维护性。在开发环境配置环节,我们涉及安装Java开发环境,并使用Maven进行依赖管理,以确保SpringBoot和MyBatis等核心库的正确集成。在项目结构设计阶段,我们详细阐述了各层的作用及其相互之间的接口关系。【课程思政】在数据库设计方面,我们定义了关键的数据表结构,包括用户、景点和订单等表格,并提供了用于创建和初始化数据库的SQL脚本。在MyBatis的集成过程中,开发者可以通过定义Mapper接口和编写XML映射文件来实现数据库操作,或者选择使用注解来编写SQL,从而实现更加灵活的数据库接入方式。服务层负责实现核心业务逻辑,包括用户管理、景点推荐、订单处理等关键功能,并利用Spring的事务管理机制来确保操作的原子性和一致性。控制器层负责设计RESTfulAPI,它处理客户端的请求和响应,并采用了全局异常处理机制,以提升API的健壮性和用户体验。任务6.1后端工程项目环境的创建与配置任务6.1后端工程项目环境的创建与配置针对本项目的后端开发环境进行搭建,主要如下:(1)配置SpringBoot开发环境,包括JDK安装、环境变量配置、Maven安装、IDEA集成创建;(2)展示SpringBoot项目搭建过程,包括Maven创建项目、添加依赖、配置数据库和运行测试。生活中的类比例子——以餐厅管理为例假设要开一家餐厅,后端项目环境搭建就像是搭建和筹备你的餐厅,让餐厅真正能够运行起来并服务顾客。装修店铺并安装必要设备(操作系统和依赖环境):要装修店铺,包括安装厨房里的各种设备(就好比给服务器安装操作系统和各种必需的软件依赖,比如Docker、Java、Node.js等)。雇佣厨师和服务员(安装和配置服务器软件):接下来需要雇佣厨师,准备菜品,聘用服务员接待客人,类似于在服务器上安装必要的软件,比如Web服务器(Apache、Nginx)、数据库(MySQL、MongoDB)。准备菜单和食材(项目代码和数据库数据处理):你需要准备餐厅的菜单和每天新鲜的食材,这就像是准备项目代码和相应的数据库,确保你的应用程序有数据可以处理。设置收银系统(配置Web服务器和API接口):你需要配置好餐厅的收银系统来处理订单付款,就像你需要配置Web服务器和API接口来处理用户的请求和响应。6.1.1Java开发环境配置JDK简介JDK(JavaDevelopmentKit,Java开发工具包)是由Oracle公司提供的一套开发Java应用程序和小程序的软件工具包,它使得代码编译、测试和执行变得可能,并且支持标准版和企业版Java,广泛应用于从移动应用到大规模企业应用的各种项目。JDK包含了进行Java编程所需的各种工具和组件,主要包括:(1)Java编译器(JavaCompiler,javac):将Java源代码编译成可由JVM(JavaVirtualMachine,Java虚拟机)执行的字节码。(2)Java运行环境(JavaRuntimeEnvironment,JRE):提供运行Java程序所需的库、Java虚拟机和其他组件。JDK简介①Java应用启动器:负责加载类文件并运行字节码,启动Java应用程序。②Java调试器(JavaDebugger,Java调试器):用于调试Java程序的工具。③Java打包工具(JavaArchive,JAR):用于创建和管理JAR文件,将多个文件打包成一个归档文件。④Java文档生成器(JavaDocumentationTool,Javadoc):从Java源代码注释中生成API文档的工具。⑤其他实用工具:javap(类文件反汇编器)、jstat(JVM统计数据监控工具)等,进一步丰富了Java开发者的工具箱。JDK安装与配置因为SpringBoot3.x只支持JDK17及以上版本,所示该项目开发使用JDK21,下面以下载和安装JDK21为例进行讲解。(1)下载JDK。JDK在Java官方网站下载。打开官方网址,选择好版本和对应的操作系统版本以及安装使用的包,如在Windows系统上进行开发,一般直接下载x64Installer的安装包(exe文件),如图6-1所示。图6-1JDK安装包的选择JDK安装与配置图6-2JDK安装完成界面(2)安装JDK。双击下载的安装包,按默认步骤即可正常安装,如图6-2所示。默认情况下,JDK的安装目录是C:\ProgramFiles\Java\jdk-21。Java环境变量配置及验证Java环境变量的配置是Java开发过程中不可或缺的一步。Java环境变量配置的主要目的是让操作系统能够找到和识别Java开发工具包的安装位置,从而在命令行或其他应用程序中正确地运行Java相关的命令和程序。通过配置环境变量,‌可以确保Java编译器(Javac)、Java虚拟机(Java)以及其他一些工具(如jar、Javadoc等)能够在命令行或终端中被正确地调用。(1)Java环境变量配置。下面以在Windows10系统上配置JDK21为例,介绍配置步骤。①右击“此电脑”,选择“属性”,在打开的窗口中点击“高级系统设置”按钮,在弹出的“系统属性”对话框中,点击“环境变量”按钮,如图6-3所示。图6-3系统属性设置界面Java环境变量配置及验证②在“系统变量”组件框下选择“新建”,如图6-4所示。③在弹出的“新建系统变量”对话框中,变量名设为“JAVA_HOME”,变量值设为JDK21的安装地址C:\ProgramFiles\Java\jdk-21,点击“确定”,如图6-5所示。图6-4新建环境变量界面图6-5新建系统变量界面Java环境变量配置及验证logo④在“系统变量”中选中“path”项,点击“编辑”,进行设置,如图6-6所示。图6-6选择path系统变量Java环境变量配置及验证⑤在弹出的“编辑环境变量”对话框中点击“新建”按钮,在最后一行输入%JAVA_HOME%\bin,点击“确定”即完成配置,如图6-7所示。说明:在这个配置中,使用JAVA_HOME作为中间变量的目的是方便后期维护。如果需要更新或更换Java版本,只需更改JAVA_HOME的值,而不需要修改其他依赖于Java路径的path环境变量,这样可以简化维护工作。图6-7在Path变量中增加JDK文件路径Java环境变量配置及验证(2)验证安装。打开命令窗口,输入命令java--version来检查Java编译器的版本,如正常显示,则表示Java安装并配置正确,如图6-8所示。图6-8查看Java版本信息6.1.2Maven依赖管理工具的配置Maven简介Maven是一个强大的项目管理和构建自动化工具,主要用于Java项目。它通过提供标准的构建生命周期、项目结构和插件系统,帮助开发者更高效地管理项目的构建、报告和文档。Maven的核心概念和工作流程如图6-9所示。图6-9Maven项目构建工作流程Maven简介(1)pom.xml文件:Maven项目的核心配置文件,即项目对象模型(POM)的具体载体。通过该文件,Maven能获取项目的各种信息,如项目基本信息、依赖管理、构建配置等,其是Maven进行项目管理和构建的基础。(2)项目对象模型(POM):Maven对项目的抽象描述,包含项目组织、模块、依赖等关键信息。在图中,它与依赖管理模型双向关联:一方面,POM定义了项目依赖关系;另一方面,依赖管理模型会根据POM配置去处理依赖,同时也影响POM中关于依赖的设置。(3)依赖管理模型(Dependency):负责管理项目所需的各种依赖,如第三方库等。它依据POM中定义的依赖信息,从仓库获取所需依赖项。图中其与仓库相连,表明它会从仓库查找、下载依赖,保证项目在构建和运行时拥有所需的外部资源。123Maven简介(4)仓库:存储依赖项的地方,包括中央仓库、远程仓库和本地仓库等。依赖管理模型从这里获取依赖,本地仓库缓存下载过的依赖,加快后续项目构建速度。远程仓库(如中央仓库)则是依赖项的主要来源。(5)构建生命周期/阶段(Buildlifecycle&phases):Maven定义了一套标准的构建生命周期,包含多个阶段,如验证、编译、测试、打包、部署等。图中显示其处于POM和插件之间,表明它根据POM配置来执行构建阶段,同时控制插件在不同阶段的运行。(6)插件:实现Maven构建任务的具体工具。每个构建阶段可绑定一个或多个插件目标,不同插件负责不同任务,如编译插件负责编译代码,测试插件负责执行测试等。构建生命周期/阶段决定插件何时运行,插件按照生命周期的阶段要求完成相应工作,共同实现项目的自动化构建。Maven简介生活中的类比例子:假设你想要烤一个蛋糕(相当于构建一个软件项目),需要各种原料(相当于项目的依赖库)和一个食谱(相当于项目的配置和脚本)。食谱和项目配置:Maven有一个关键的配置文件pom.xml,它就像是食谱,告诉你需要哪些原料,以及如何一步步地将它们结合起来制作蛋糕。原料和依赖管理:在烤蛋糕的过程中,你可能需要面粉、鸡蛋、糖、黄油等;类似地,在一个Java项目中,你可能需要各种库和框架,如Spring、Hibernate等,Maven帮助你自动下载和管理这些依赖库,而不需要手动去找每一个库并下载,这就像是有一个助手帮你去超市买齐需要的所有原料。Maven简介烘焙和项目构建:制作蛋糕的过程包括混合原料、预热烤箱、按照步骤进行操作,最后烤制;同样地,Maven能够自动化地执行编译源代码、运行测试、打包应用程序等步骤。你只需要告诉Maven“我要构建这个项目”,它就会按照配置文件中的步骤来完成所有这些工作。模板和插件:在烤蛋糕的时候,你可能希望用一些模板来做出特定形状的蛋糕,或者使用一些额外的装饰工具使蛋糕更美观;Maven也有类似的功能,它通过插件来扩展自己的能力,比如代码检查、打包成不同格式、部署到服务器等。社区共享和依赖传递:你发现网络上有人分享了一个很棒的蛋糕配方,想要试试看;同样地,Maven中有一个中央仓库(MavenCentral),你可以很方便地从中获取别人发布的库和框架。123Maven简介总结一下,Maven就像是一个智能助手,帮助你管理烤蛋糕(创建软件项目)的整个过程,从准备所需的原料(依赖管理)、按照食谱(项目配置)一步步操作,到最终完成美味的蛋糕(构建和部署应用程序)。这大大节省了时间和精力,让你可以更专注于制作更美味、更有创意的蛋糕(编写更高质量的代码)。Maven安装与配置(1)Maven下载。访问Maven官方下载页面,根据采用的操作系统选择对应的Maven安装包,Windows操作系统通常下载zip格式,如图6-10所示。图6-10Mave下载界面Maven安装与配置Binary是可执行版本,表示已经编译好可以直接使用。Source是源代码版本,表示需要自己编译成可执行软件才可使用。我们选择apache-maven-3.9.9-bin.zip下载。(2)Maven安装。创建一个目录用来存放Maven,例如:C:\ProgramFiles\Apache\maven。将下载的apache-maven-3.9.9-bin.zip文件解压到上述创建的目录中,解压后得到一个名为apache-maven-3.9.9的文件夹。Maven安装与配置(3)Maven环境变量配置。Maven环境变量配置与6.1.1中的Java环境变量配置的操作步骤相同。在“新建系统变量”对话框中需将变量名设置为MAVEN_HOME,变量值设置为C:\ProgramFiles\Apache\maven\apache-maven-3.9.9,如图6-11所示。图6-11新建MAVEN_HOME系统变量Maven安装与配置在Path变量值末尾添加%MAVEN_HOME%\bin即可。图6-12在Path变量中增加Maven文件路径Maven安装与配置:(4)验证安装。打开命令窗口,输入命令mvn--version,如显示Maven的版本信息以及Java的版本信息等,表示Maven安装并配置正确,如图6-13所示。图6-13查看Maven版本信息Maven安装与配置图6-14Maven修改本地仓库(5)配置本地仓库。默认情况下,Maven会在用户目录下创建一个.m2文件夹作为本地仓库。如果想自定义本地仓库的位置(如D:\repository),可以按照以下步骤操作打开Maven安装目录下的conf文件夹,找到settings.xml文件;使用文本编辑器打开settings.xml文件,查找到内容<localRepository>/path/to/local/repo</localRepository>,将其复制到注释外,修改为<localRepository>D:\repository</localRepository>,如图6-14所示。Maven安装与配置(6)修改Maven的下载镜像地址为阿里镜像仓库。同样使用文本编辑器打开settings.xml文件,找到<mirrors>标签,在其内部添加以下代码:<mirror><id>alimaven</id><name>aliyunmaven</name><url>/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>这样Maven下载依赖时就会优先从阿里云镜像仓库获取,加快下载速度6.1.3搭建SpringBoot项目6.1.3搭建SpringBoot项目SpringBoot是一个用于简化Spring应用程序开发的框架,它提供了快速构建、开箱即用的特性,使得开发人员可以更快速地搭建和部署应用程序。现在很多企业都用的是SpringBoot项目,但是在工作过程中,一般都是项目的架构师已经搭建好了,但是作为学习者,也需要知道如何新建一个SpringBoot项目。SpringBoot版本说明SNAPSHOT:快照版,表示开发版本,随时可能修改。M1(Mn):M1是milestone的缩写,也就是里程碑版本。RC1(RCn):RC1是releasecandidates的缩写,也就是发布预览版。Release:正式版。01030204在IDEA中配置Maven项目管理(1)创建SpringBoot配置Maven界面,配置Maven的存储路径,指定Maven的配置文件,选择自己配置的Maven存储的路径,如图6-15~6-18所示。完成之后点击“Apply”,再点击“OK”按钮。图6-15创建SpringBoot配置Maven界面在IDEA中配置Maven项目管理图6-16配置Maven的存储路径在IDEA中配置Maven项目管理图6-17指定Maven的配置文件在IDEA中配置Maven项目管理图6-18Maven的仓库文件在IDEA中配置Maven项目管理图6-19选择Java版本(2)选择Java版本,如图6-19所示。在IDEA中配置Maven项目管理(3)选择依赖,如图6-20所示。图6-20选择依赖在IDEA中配置Maven项目管理(4)配置Maven项目存储路径,如图6-21所示。图6-21选择Maven项目存储路径在IDEA中配置Maven项目管理(5)查看项目信息,如图6-22所示。Maven导入成功之后,测试项目是否能启动成功。图6-22查看maven配置情况通过IDEA脚手架搭建Maven项目的步骤在“1.3.2SpringBoot项目创建实例”有详细的步骤描述。6.1.4MySQL数据库的安装MySQL软件下载MySQL可以在官方网站下载。打开网址,选择好版本和对应的操作系统版本,如在Windows系统中开发,直接下载MSIInstaller的安装包,如图6-23所示。图6-23MySQL软件的下载界面MySQL软件安装双击下载的安装包,按默认步骤即可正常安装。需要注意的是在设置root用户密码时,请务必记住设置的密码,在后续的数据库连接设置和登录中需要使用。以下展示几个需要注意的页面,如图6-24~图6-26所示。图6-24设置root用户密码MySQL软件安装图6-25MySQL数据库连接测试MySQL软件安装图6-26MySQL安装完成使用Navicat连接MySQL数据库Navicat是一款功能强大的数据库管理工具,可用于管理多种类型的数据库,包括MySQL、MariaDB、SQLServer、SQLite、Oracle和PostgreSQL等。Navicat可以在其官方网站下载,选择Windows系统的MSIInstaller安装包。按默认步骤即可正常安装,这里不再赘述。打开Navicat,点击新增连接,选择MySQL,弹出对话框(见图6-27),在其中输入连接名(自己搭建的数据库)、主机(或localhsot)、端口(3306)、用户名(root)和密码(在安装MySQL时设置的)等信息即可连接。使用Navicat连接MySQL数据库当弹出“连接成功”对话框,就表示Navicat已正常连接到MySQL数据库,如图6-28所示。图6-27填写连接信息使用Navicat连接MySQL数据库数据库搭建成功之后,就可以按照项目设计中的数据库设计要求,进行数据库和数据表的创建,以及通过图形化界面建立表之间的关系等。图6-28Navicat连接成功提示任务6.2后端工程项目中接口的实现与测试任务6.2后端工程项目中接口的实现与测试在项目中,实现接口通常包括以下几个主要层次:Controller、Service和Mapper。每一层次在整个实现流程中都有其特定的职责。Controller层是与用户直接交互的层,通常用于处理HTTP请求:它接受请求数据,调用服务层进行业务逻辑处理,然后将结果返回给前端。Service层是业务逻辑层,负责处理具体的业务规则和逻辑:它通常会调用Mapper层进行数据访问,并进行数据处理和转换。Mapper层(也叫DAO层)是数据访问层,负责与数据库进行交互:它定义了数据库操作的方法,并通过ORM框架(如MyBatis,Hibernate等)实现。6.2.1用户管理的接口实现设计数据库和实体类下面以“用户管理”功能的接口实现为例进行讲解(为简化,只选取部分字段):(1)设计用户表。创建数据库的表admin,包含字段:admin_id(主键,自增)、admin_name(用户名)、admin_email(用户邮箱)。(2)创建实体类User。定义User类,其属性与数据库表字段对应(Longadmin_id、Stringadmin_name、Stringadmin_email);为每个属性生成getter和setter方法。实现Mapper层(数据访问层)(1)定义UserMapper接口。针对每个数据库操作分别定义一个方法。提供方法如下:findById(Longid)、findAll()、insert(Useruser)、update(Useruser)、delete(Longid)。(2)编写SQL语句。使用注解(如MyBatis的@Select,@Insert,@Update,@Delete)直接在接口方法上方编写SQL语句。findById:用于根据用户Id查询单个用户。findAll:用于查询所有用户。insert:用于插入新用户,确保使用@Options获取生成的主键。update:用于更新现有用户信息。delete用于删除指定Id的用户。实现Service层(业务逻辑层)(1)定义UserService接口。声明业务逻辑方法:getUserById(Longid)、getAllUsers()、createUser(Useruser)、updateUser(Useruser)、deleteUser(Longid)。(2)实现UserService接口。创建UserServiceImpl类,实现UserService接口中声明的方法。在类中注入UserMapper,通过依赖注入(例如Spring的@Autowired注解)。实现Service层(业务逻辑层)createUser调用UserMapper.insert,用于插入用户信息。getUserById调用UserMapper.findById,用于根据用户Id查询单个用户。updateUser调用UserMapper.update,用于更新用户数据。deleteUser调用UserMapper.delete,用于删除用户。getAllUsers调用UserMapper.findAll,用于查询所有用户对每个方法实现具体业务逻辑。实现Controller层(接口层)(1)创建UserController类。使用@RestController注解标识这个类为控制器。设置基本的请求路径,如/api/users。(2)实现RESTful接口方法。getUserById:响应GET请求/api/users/{id},调用UserService.getUserById,返回用户信息。getAllUsers:响应GET请求/api/users,调用UserService.getAllUsers,返回所有用户信息。createUser:响应POST请求/api/users,调用UserService.createUser,创建新用户,返回创建的用户信息。updateUser:响应PUT请求/api/users/{id},调用UserService.updateUser,更新用户信息,不返回具体数据(204NoContent)。deleteUser:响应DELETE请求/api/users/{id},调用UserService.deleteUser,删除用户,不返回数据(20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论