当前位置: 首页 > 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;。你需要…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...