SpringBoot项目详解(一)

前言

    这篇文章旨在全面解析咱们的SpringBoot 项目,涵盖五大模块。一是后端项目启动教程,深入剖析启动流程与关键要素。二是后端代码包架构,解读各包功能。三是后端技术栈,详细说明所涉技术及其协同工作机制。四是项目问题解决,分享开发中遇到的问题并说应对之策。五是技术推荐,依据以往经验给出推荐的视频学习网站。

一、项目启动

(一)选中我们要打开的项目

(二)在Application.java页面直接右键选中Run 'Application'

 (三)出现下面的提示代表后端启动成功

二、解读后端代码包

在src.main.java的目录下,

1、com.company.project.web目录存放的是controller层,主要负责的是具体业务模块的流程控制(ajax一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。jquery将它封装成了一个函数$.ajax(),我们可以直接用这个函数来执行ajax请求。)

2、com.company.project.service目录存放的是service层,主要负责业务模块的应用逻辑设计(比如说用户登录,业务逻辑就是说校验用户名和密码是否正确)。同样是首先设计接口,再设计其实现类。封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。

3、com.company.project.dao目录存放的是dao层,主要负责的是设计dao层相关的接口,然后在resources目录下mapper的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰。dao等的数据源配置,以及有关的数据库连接参数都在configurer包下的配置文件中进行配置(简单来说就是用来存放sql语句,用来实现增删改查)。

4、com.company.project.common目录存放的是公共参数类,便于其他实体类复用。

5、com.company.project.configurer目录存放的是配置文件,主要实现的是对Mysql数据库的链接,Swagger2的配置,Spring mvc的配置。项目的跨域配置,项目的文件资源配置等。该配置文件全都采用@Configuration用于定义配置,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

7、com.company.project.core目录存放的是统一接口响应结果封装,便于其他函数引用。

8、com.company.project.exception目录存放的是统一异常处理类,便于其他函数引用

9、com.company.project.filter目录存放的是登录拦截器,主要实现的是禁止未登录或登录信息失效状态下对系统进行操作,同时实现用户登录信息的过期机制。

10、com.company.project.model目录存放的是实体类,主要是作为数据管理和业务逻辑处理层面上存在的类别,主要职责是存储和管理系统内部的信息。

11、com.company.project.utils目录存放的是工具类,主要对日期处理,MD5的加密方式进行封装,便于重复利用开发。

12、com.company.project.vo目录存放的是VO实体类,主要实现的是对应当前业务逻辑所需要的数据的名称。

在resources的目录下,

13、.yml文件存放的是平台配置文件,包括数据源,启动端口号,上传文件大小等

14、Mapper目录存放的是dao的实现类,主要实现的是用来管理SQL语句。也就是实现增删改查。mapper映射文件分别提供select,insert,update,delete xml元素,分别对应数据库的查询,插入,修改,删除操作。每一个xml元素通过id属性与dao接口类中的方法相互关联。

mapper元素。该元素是最顶层的配置元素,其属性namespace指向dao包下类的全类型名,即:包路径+类名。在mapper元素下面,包含如下子元素:resultMap元素,select元素,insert元素,update元素,delete元素。

resultMap元素。建立数据库表的列名与model类的数据字段之间的映射关系。当model类的数据字段与数据库表不一致的时候,或者承载复杂查询结果的时候,使用resultMap配置;

select元素。用来维护select语句。

insert元素。用来维护insert语句。

update元素。用来维护update语句。

delete元素。用来维护delete语句。

15、公用字段解释(公用字段为基础字段,在论文中可不写)

t_donate 英文表名

comment 代表这个表的中文名字

id 主键 自增

created_at 创建时间 新增数据的时候获取当前时间

created_by`创建人 新增数据的时候获取当前登录人的ID

updated_at 更新时间 修改数据的时候获取当前时间

updated_by 修改人 修改数据的时候获取当前登录人的ID

is_delete 删除标识 删除标识(0代表存在 1代表删除)

status 业务状态 自定义状态

举例说明:

比如说,我们有一个用户注册了咱们的系统,注册的时候,created_at会自动记录当前用户注册的时间,这个用户假设申请了一个订单,那么created_at会记录当前创建订单的时间,created_by就是当前用户创建人的id,如果修改了这个订单的话,updated_at会记录修改的时间,updated_by字段会记录当前修改订单人。status业务状态可以理解成用户账号的启用或者是禁用。

三、后端技术栈

  (一)SpringBoot

SpringBoot 是一种用于构建 Java 应用程序的开源框架。它简化了基于 Spring 框架的应用开发过程。SpringBoot 具有自动配置功能,能根据项目依赖自动设置各种组件,减少大量配置工作。它内置了 Web 服务器,方便开发 Web 应用。采用约定优于配置的理念,遵循默认设置就能快速搭建项目。在开发中,SpringBoot 提供了高效的依赖管理,易于与数据库等技术集成。

  (二)MySQL

MySQL 是一种广泛使用的开源关系型数据库管理系统。它具有多方面的优势。在数据存储方面,能够高效地存储和管理大量结构化数据。支持多种数据类型,满足不同业务需求。从性能上看,经过优化的查询算法可快速处理复杂查询,提升数据检索速度。其可移植性强,能在多种操作系统上运行。MySQL 具备完善的安全机制,包括用户认证、权限管理等,保障数据安全。在应用场景上,无论是小型项目还是大型企业级应用,如电商平台、内容管理系统等,MySQL 都是一个可靠且流行的数据库选择。

  (三)MyBatis

MyBatis 是一款优秀的持久层框架。它将 SQL 语句与 Java 代码分离,在 Java 对象和 SQL 语句之间建立映射关系。通过 XML 的方式来配置这种映射,使得 SQL 编写更加灵活,可以针对不同的数据库编写原生 SQL 语句。MyBatis 在性能方面表现出色,减少了不必要的数据库交互开销。在操作数据库时,能够方便地实现数据的增删改查操作。对于复杂的查询需求,如多表联合查询等,它可以精准地控制 SQL 逻辑。它在企业级应用开发中被广泛使用,简化了数据库访问层的开发工作。

  (四)TkMybatis

TkMyBatis 是对 MyBatis 框架的增强工具。它简化了 MyBatis 的使用流程。在数据持久化操作方面,TkMyBatis 提供了通用的 Mapper 接口,这些接口包含了常见的增删改查方法,开发者无需编写大量重复的 SQL 映射语句,就能快速实现对数据库的基本操作,极大提高了开发效率。同时,TkMyBatis 保持了 MyBatis 的灵活性,对于复杂业务逻辑需要自定义 SQL 的情况,依然可以方便地进行配置,在基于 MyBatis 的项目开发中,是一种非常实用的辅助技术。

  (五)Java

Java 是一种广泛应用的高级编程语言。它具有平台独立性,通过 Java 虚拟机(JVM),可在不同操作系统上运行相同代码。Java 是面向对象的,支持封装、继承和多态,有助于构建模块化和可维护的程序。在企业级开发中,Java 有着丰富的类库和框架,如 Spring、Hibernate 等,可高效地开发大型项目。其安全性较高,有自动的垃圾回收机制,避免内存泄漏等问题。Java 在 Web 开发、移动应用开发(Android)、大数据、桌面应用等众多领域都发挥着重要作用。

四、答辩可能遇到的问题

  (一)登录是怎么实现的,可以展开说一下吗?

        1、前端会开发一个表单,表单中包含了用户名和密码两个输入框,用户在两个输入框输入值以后点击提交按钮,这个时候前端会做初步的校验,例如,检查用户名是否为空、密码长度是否符合规定等。

        2、然后前端就会通过特定的接口请求将用户输入的登录信息发送给后端服务器。

        3、后端接收到前端传来的登录请求和用户数据后,首先会对请求进行解析和验证。确保请求的合法性和数据的完整性。

        4、然后,后端会根据用户提供的用户名在数据库中进行查询,以确定该用户是否存在。如果用户存在,接着会对用户输入的密码进行加密处理,并与数据库中存储的已加密密码进行比对。

        5、如果密码匹配,则表示用户身份验证成功。后端会生成一个唯一的令牌(token),这个令牌可以包括了用户的身份信息等重要数据。并将这个令牌返回给前端。前端接收到后端返回的令牌后,会将其存储在sessionStorage中,以便在后续的请求中可以携带这个令牌,向服务器表明用户的身份。

        6、最后,每当用户进行需要身份验证的操作时,前端会在请求头中添加这个令牌,发送给后端进行验证。通过这样的方式,实现了登录功能。

  (二)如何处理用户之间的交互和数据传输?

        1、首先就是前端负责用户交互,收集用户的输入信息,并且将用户的请求采用HTTP请求发送给后端,后端接收前端发送的请求,处理用户的请求并返回响应数据。后端使用SpringBoot框架编写控制器(Controller)来处理请求,(Service)实现业务逻辑,数据处理(Dao)层通过MyBatis框架与数据库进行交互进行数据的增删改查等操作。

五、技术推荐(视频学习)

  (一)SpringBoot

https://www.bilibili.com/video/BV1gW411W76m?from=search&seid=7621728131880199678 

  (二)MyBatis

https://www.bilibili.com/video/BV1NE411Q7Nx?from=search&seid=17928844159284563602

  (三)Spring

https://www.bilibili.com/video/BV1ZU4y1b7Gm?from=search&seid=15546164921629270942&spm_id_from=333.337.0.0

  (四)Java

https://www.bilibili.com/video/BV18J411W7cE?from=search&seid=12504386912255791724&spm_id_from=333.337.0.0

  (五)MySQL

https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=2247810298903003000&spm_id_from=333.337.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕设定制辅导-无忧学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值