当前位置: 首页 > news >正文

SpringBoot3 + Vue3 学习 Day 1

springboot 基础 和 注册接口的开发

  • 学习视频
  • 基础
    • SpringBoot 概述
    • 快速启动
    • 配置文件基本使用
      • ① application.properties
      • ② application.yml (更好)
    • yml 配置信息的书写和获取
      • yml 配置信息书写与获取 1 -@ Value
      • yml 配置信息书写与获取 2 - @ConfigurationProperties
    • SpringBoot 整合Mybatis
    • Bean 扫描
  • 注册接口的开发
    • 1、连接数据库并创建表
    • 2、创建Spring Boot 工程
    • 3、注册接口 的开发
      • 流程
      • ① 创建实体类 并用 Lombok 自动生成各种方法
      • ② 定义大管家 Controller 类,并发号施令
      • ③ 定义手下 UserService 类
        • 怎么加密?
      • ④ 小二 UserMapper 登场,开始办事
      • ⑤ 开始测试
    • 4、注册账号 的参数校验
      • a、 手写 if - else
      • b、使用 Spring Validation 参数校验框架
        • ① 添加 validation 依赖
        • ② 注解
        • ③ 参数校验失败异常处理

学习视频

黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关

基础

SpringBoot 概述

image-20240716104330969

快速启动

image-20240716105144038

① 创建Maven工程

​ 文件 -> new -> Module ->…

image-20240702145803965

② 导入spring-boot-starter-web 起步依赖

image-20240702145838003

image-20240716110150807

③ 编写Controller

image-20240702145901527

④ 提供启动类

image-20240702150014971

配置文件基本使用

① application.properties

image-20240702151822985

image-20240702151836653

② application.yml (更好)

image-20240702152134664

yml 配置信息的书写和获取

image-20240716151630116

image-20240716153552395

yml 配置信息书写与获取 1 -@ Value

类中使用 @Value 注解后(类中注解的名称和 yml 中的名称需一一对应),会自动去 yml 中获取配置并赋值

多个变量多个注解

image-20240716155030027

yml 配置信息书写与获取 2 - @ConfigurationProperties

一个zhu’j

image-20240716155428035

SpringBoot 整合Mybatis

image-20240717091115747

Bean 扫描

Spring Boot 工程默认扫描 启动类所在的包及其子包。如下图:启动类在 springbootmybatis 包里,而 UserController 类在itheima 包里,这样默认是扫描不到的。得加 ComponentScan 注解才能访问

image-20240718095541798

注册接口的开发

1、连接数据库并创建表

① 点击IDEA 右侧 database 数据图标,再点击 + 选择 Data Source -> MySQL 连接数据库

image-20240718153653852

② 填写数据库账号密码等

image-20240718154005338

③ 进入mysql 的操作窗口

image-20240718154217559

全选代码,并点击运行 ,生成三张表

image-20240718154419568

2、创建Spring Boot 工程

① 设置名称,位置,组等信息。Type选择maven,jdk 17,jave 17

image-20240718154632776

② 选择 web,MySQL,mybatis 依赖

image-20240718220057222

③ yml 配置链接 数据库

image-20240718220221640

3、注册接口 的开发

流程

controller 大管家,集中处理,分发任务:

叫狗腿子(userService),先看看用户存在不,存在则大管家报告Boss 说注册失败,账号存在;若不存在,则告诉狗腿子账号密码,叫狗腿子去注册一个,然后告诉Boss 注册成功

狗腿子(userService)接收命令。然后去人事部(User)找小二(userMapper)去查看用户或者注册,小二是真正操作者

① 创建实体类 并用 Lombok 自动生成各种方法

1、 lombok 小工具,使用时能自动生成实体类的 set,get,toString 等各种 方法。十分方便。用法:

① 导入 lombok 依赖,并 maven 一下

image-20240718161351389

② 在实体类(用户实体类,和操作返回结果实体类)上添加注解 @data (@data 是实现数据类的方法 get、set、equel、toString、Hash)

和 @NoArgsConstructor (生成无参构成方法)@AllArgsConstructor(有参构造方法)

image-20240718222958338

image-20240718222924213

② 定义大管家 Controller 类,并发号施令

image-20240718225517687

③ 定义手下 UserService 类

狗腿子是接口,接收到命令后,立马说:收到,我执行了。

image-20240718225630593

然后狗腿子部门开会,得出具体实现:我先把大管家告诉我的密码加密,然后叫具体的小二去执行

image-20240718230204358

怎么加密?

① 导入 MD5 的工具类

image-20240718230655825

② 在实现类中调用 getMD5String() 方法

String md5String = Md5Util.getMD5String(password);

④ 小二 UserMapper 登场,开始办事

image-20240718231237777

⑤ 开始测试

使用 postman 软件进行测试 PostMan中文文档

点击 Workspaces -》Create Workspace-》起名字-》创建 工作集 Collections

image-20240718232350635

点击send,可在下方看到 大管家告诉 Boss 的信息

4、注册账号 的参数校验

a、 手写 if - else

image-20240719083652054

b、使用 Spring Validation 参数校验框架

Spring Validation 通过使用预定义的注解,来完成参数校验

image-20240719091125650

① 添加 validation 依赖

image-20240719084429707

② 注解

image-20240719085718399

这样注册失败,只会抛异常。而不会放回Result 对象,生成系统能识别 的json 信息。所以得处理异常

image-20240719090733559

③ 参数校验失败异常处理

生成 exception 包 和全局异常处理类

image-20240719090815619

这样注册失败后,返回的信息就易懂了

image-20240719090923758

相关文章:

SpringBoot3 + Vue3 学习 Day 1

springboot 基础 和 注册接口的开发 学习视频基础SpringBoot 概述快速启动配置文件基本使用① application.properties② application.yml (更好) yml 配置信息的书写和获取yml 配置信息书写与获取 1 - Valueyml 配置信息书写与获取 2 - ConfigurationPr…...

如何使用在线工具将手机相册中的图片转换为JPG格式

我们经常在手机相册中保存大量的图片,无论是家庭聚会的照片还是旅行的瞬间,每一幅图像都承载着珍贵的记忆。然而,有时候我们会遇到图片格式不兼容的问题,尤其是在需要将图片分享到特定平台或编辑时。 例如,某些社交平台…...

C#医学影像管理系统源码(VS2013)

目录 一、概述 二、系统功能 系统维护 工作站 三、功能介绍 影像采集 统计模块 专业阅片 采集诊断报告 报告管理 一、概述 医学影像存储与传输系统(PACS)是一种集成了影像存储、传输、管理和诊断功能的系统。它基于数字化成像技术、计算机技术和…...

Qt Creator 项目Console 项目踩坑日记

最近在做QT的项目,但是一直是带界面(QT Widgets)程序,前几天收到个需求,是要做个socket服务端的桌面程序,界面有没有都成,然后就想着接着用 QT Widgets 搞,结果辛辛苦苦把socket服…...

[MAUI 项目实战] 笔记App(一):程序设计

文章目录 前言框架定义核心类项目地址 系列文章: [MAUI 项目实战] 笔记App(一):程序设计 [MAUI 项目实战] 笔记App(二):数据库设计 前言 有人说现在记事类app这么多,市场这么卷&a…...

VisualRules-Web案例展示(一)

VisualRules单机版以其卓越的功能深受用户喜爱。现在,我们进一步推出了VisualRules-Web在线版本,让您无需安装任何软件,即可在任何浏览器中轻松体验VisualRules的强大功能。无论是数据分析、规则管理还是自动化决策,VisualRules-W…...

使用Docker 实现 MySQL 循环复制(三)

系列文章 使用Docker 实现 MySQL 循环复制(一) 使用Docker 实现 MySQL 循环复制(二) 目录 系列文章1. 在主机上安装MySQL客户端2. 配置循环复制拓扑2.1 进入容器2.2 创建复制用户并授予复制权限2.3 复位二进制日志2.4 配置环形复…...

Spring如何管理Mapper

目录 一、背景二、猜测三、源码查看步骤1、创建MapperScannerConfigurer.java2、MapperScan注解3、MapperScannerRegistrar执行registerBeanDefinitions方法4、MapperScannerConfigurer执行postProcessBeanDefinitionRegistry方法5、执行doscan6、设置beanClass7、使用jdk生成代…...

NFS存储、API资源对象StorageClass、Ceph存储-搭建ceph集群和Ceph存储-在k8s里使用ceph(2024-07-16)

一、NFS存储 注意:在做本章节示例时,需要拿单独一台机器来部署NFS,具体步骤略。NFS作为常用的网络文件系统,在多机之间共享文件的场景下用途广泛,毕竟NFS配置方 便,而且稳定可靠。NFS同样也有一些缺点&…...

「Vue组件化」封装i18n国际化

前言 在Vue应用中实现国际化(i18n),通常需要使用一些专门的库,比如vue-i18n。本文主要介绍自定义封装i18n,支持Vue、uniapp等版本。 设计思路 一、预期效果 二、核心代码 2.1 i18n.xlsx文件准备 2.2 脚本执行 根目录main.js根目录locali18n.xlsxnode main.jsmain.js 文件…...

【Git远程操作】理解分布式管理 | 创建远程仓库

目录 1.理解分布式管理 多人协作开发 2.创建远程仓库 2.1仓库名&路径 2.2初始化仓库&设置模板 1.理解分布式管理 目前我们学习的所有内容都是在本地来完成的。(add /commit /版本撤销回退/分支管理) Git是一个分布式 的版本控制系统。 分支…...

OJ-0718

示例1 input 3 1 1 1 output 0示例2 input 3 3 7 10 output 1示例3 input 4 3 7 10 16 output 3题解1&#xff1a;List {public static void main(String[] args) {Scanner in new Scanner(System.in);int num in.nextInt();List<Integer> list new ArrayList<…...

python抓包 -- 用wireshark抓包、解析--scapy、PyShark

一、 安装scapy模块 1、打开DOS命令行 python -m pip install scapy2、sniff()函数 功能&#xff1a;数据嗅探 参数&#xff1a; iface: 指定在哪个网络接口上抓包 count: 表示要捕获数据包的数量。默认为0(不限制数量) filter: 流量的过滤规则。使用的是 BPF 的语法 prn:…...

uni-app开发日志:unicloud使用时遇到的问题解决汇总(不断补充)

插件安装后提示与原数据库表冲突&#xff08;2024.7.18&#xff09; 安装uni-admin后再安装uni-cms&#xff0c;在uni-admin中添加好菜单&#xff0c;结果提示该错误 回到hbuilder中uniCloud/database中找到冲突的部分 比较一下&#xff0c;选中老的删除 opendb-news-articl…...

插入排序算法详解

快速排序&#xff08;Quick Sort&#xff09;是计算机科学与技术领域中非常经典的一种排序算法&#xff0c;由C. A. R. Hoare在1960年提出。它应用分治思想进行排序&#xff0c;通过对数据进行分区操作&#xff0c;并递归地对分区后的子序列进行排序&#xff0c;从而达到整个序…...

parallel 详细解析 Java 8 Stream API 中的 parallel 方法

详解Java Stream的并行处理&#xff08;Parallel&#xff09; Java 8 引入了Stream API&#xff0c;提供了一种便捷而高效的方式来处理集合数据。Stream API使得对数据集合的操作变得更为简洁和易读。 其中&#xff0c;并行流&#xff08;parallelStream&#xff09;是Stream …...

不同业务场景下通过mars3d实现绕点旋转效果

1.鼠标单击地图某一处就对该点进行绕点旋转效果 相关代码&#xff1a; 1.相关绕点旋转的初始化代码&#xff1a; const rotatePoint new mars3d.thing.RotatePoint({direction: false, // 方向 true逆时针&#xff0c;false顺时针time: 50 // 给定飞行一周所需时间(单位 秒)&…...

重塑水利未来:智慧水利解决方案的探索与实践,从物联网、大数据到人工智能,科技如何赋能水利行业,实现智慧化管理与决策

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…...

IO、进程、线程03

第一题&#xff1a;预习 opendir 和 readdir函数 opendir 和 readdir 是两个在C语言&#xff08;特别是使用POSIX标准的系统&#xff0c;如Linux和UNIX&#xff09;中用于目录遍历的函数。这两个函数属于标准的C库中的目录操作部分&#xff0c;通常与<dirent.h>头文件一…...

算法力扣刷题记录 五十二【617.合并二叉树】

前言 二叉树篇&#xff0c;继续。 记录 五十二【617.合并二叉树】 一、题目阅读 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...