自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Spring Boot属性配置方式

在JAR运行命令的后面添加此命令即可。

2025-06-30 14:52:03 115

原创 大事件项目记录14-SpringBoot项目部署

XXX为你的JAR包名,运行此命令即可运行JAR包。运行JAR包要求有jre环境。

2025-06-30 14:29:37 142

原创 大事件项目记录13-登录优化-redis

原有代码中在修改密码在产生新令牌后并未将旧的令牌主动失效,旧的令牌依然可以使用 ,会产生安全隐患,所以需要对其进行优化。

2025-06-30 14:06:55 217

原创 大事件项目记录13-接口开发-补充

使用本地的方式,暂时存储文件,测试上传文件接口无误: FileUploadController.java: 使用Postman测试: 阿里云对象存储OSS(0bject Storage Service),是一款海量、安全、低成本、高可靠的云存储服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。具体使用方式如下:2.新建工具类AliOssUtil.java:3.在FileUploadControlle

2025-06-29 22:34:53 246

原创 大事件项目记录12-文章管理接口开发-总

对于参数。

2025-06-29 18:24:28 434

原创 大事件项目记录11-文章分类接口开发-删除文章分类

【代码】大事件项目记录11-文章分类接口开发-删除文章分类。

2025-06-28 22:11:56 138

原创 大事件项目记录10-文章分类接口开发-更新文章分类

1.如果某个校验项没有指定分组,默认属于Default分组;2.分组之间可以继承,那么A中拥有B中所有的校验项。

2025-06-28 21:37:03 295

原创 大事件项目记录9-文章分类接口开发-获取文章分类详情

【代码】大事件项目记录9-文章分类接口开发-获取文章分类详情。

2025-06-28 19:32:49 120

原创 大事件项目记录8-文章分类接口开发-文章分类列表

【代码】大事件项目记录8-文章分类接口开发-文章分类列表。

2025-06-28 19:15:38 239

原创 大事件项目记录7-文章分类接口开发-新增文章分类

【代码】大事件项目记录7-文章分类接口开发-新增文章分类。

2025-06-28 10:25:05 244

原创 大事件项目记录6-用户接口开发-更新用户密码

【代码】大事件项目记录6-用户接口开发-更新用户密码。

2025-06-28 09:37:15 112

原创 大事件项目记录5-用户接口开发-更新用户头像

仍然是可以运行的,所以需要添加。

2025-06-27 16:53:00 251

原创 大事件项目记录4-用户接口开发-更新用户基本信息

使用Postman测试,发现可以正常执行校验。在接口实体参数之前添加注解。

2025-06-27 16:16:11 190

原创 大事件项目记录3-用户接口开发-获取用户详细信息

此时创建时间与更新时间仍有问题,查找问题发现数据库字段命名与实体类命名不同,数据库为下划线方式,而实体类为驼峰命名法,两者不一样导致的数据为。后需要及时关闭,防止内存泄漏。修改拦截器LoginInterceptor.java。进行测试,发现运行无误,说明修改没问题。中进行配置即可,开启驼峰命名和下划线命名的自动转换。再次测试,发现此问题也解决。存储的数据:线程安全,线程隔离。

2025-06-27 11:11:00 393

原创 大事件项目记录2-用户接口开发-登录

(头),记录签名算法、令牌类型等。例如:{"alg":"HS256","type":"JWT"}(签名),防止Token被篡改、确保安全性。(https://iwt.io/)定义了一种简洁的、自包含的格式,用于通信双方以json数据格式安全的传输信息。(有效载荷),携带一些自定义信息、默认信息等。例如:{"id":"1","username":"Tom”)是一种基于64个可打印字符(A-Z a-z 0-9 + /)来表示二进制数据的编码方式。在Web开发中最常用的令牌为。令牌验证:令牌就是一段字符串。

2025-06-26 20:37:00 695

原创 大事件项目记录2-接口开发-注册

使用lombok工具在编译阶段可自动创建settergettertoString实体类。若使用此工具,需要在pom文件中引入依赖,在实体类上添加注解@Data进行使用。

2025-06-26 18:56:16 951

原创 大事件项目记录1-开发模式和环境搭建

本文介绍了基于SpringBoot和MyBatis的后端开发流程。采用前后端分离模式,通过接口文档协调开发。首先搭建环境:创建数据库,建立用户表、分类表和文章表;使用Maven引入SpringBoot、MyBatis和MySQL驱动等依赖;配置application.yml数据库连接。接着创建实体类(User、Category、Article)对应数据库表结构。最后完成启动类设置并测试运行。整套流程涵盖了从数据库设计到后端框架搭建的关键步骤,为后续业务开发奠定了基础。

2025-06-13 15:43:35 425

原创 自定义Starter

1)创建dmybatis模块,提供自动配置功能,并自定义配置文件 META-INF/spring/xxx.imports。dmybatis此命名主要是为了与原有的mybatis进行区别2)创建dmybatis-spring-boot-starter 模块,在starter中引入自动配置模块。新建两个maven工程,命名为dmybatis-spring-boot-autoconfigure和dmybatis打开Spring Boot整合Mybatis。

2025-06-12 09:59:04 561

原创 Spring Boot自动配置原理

摘要:Spring Boot的自动配置通过约定大于配置原则实现,引入起步依赖后相关Bean会自动注入IOC容器。以spring-boot-starter-web依赖为例,启动时会自动注册DispatcherServlet。自动配置的核心在于@EnableAutoConfiguration注解

2025-06-10 22:54:28 1042

原创 Bean管理

本文介绍了Spring/SpringBoot中Bean的扫描与注册方式。在Spring中通过XML或@ComponentScan指定扫描路径,而SpringBoot通过@SpringBootApplication默认扫描启动类所在包。Bean注册可使用@Component及其衍生注解(@Controller、@Service等),第三方Bean则需用@Bean或@Import方式注册。

2025-06-10 16:33:20 776

原创 Spring Boot整合Mybatis

本文详细介绍了SpringBoot整合MyBatis的完整流程,包括:依赖配置:需添加MyBatis-spring-boot-starter和MySQL驱动依赖数据库配置:在application.yml中设置数据源参数项目结构:创建controller、service、mapper、entity等标准分层案例演示:通过查询User表数据的完整示例,展示了从浏览器请求到数据库操作的全流程

2025-06-09 15:54:48 996

原创 Windows安装MySQL数据库

本文介绍了MySQL社区版在Windows系统下的安装步骤。首先从官网下载完整版安装包,推荐选择离线安装方式。安装时只需勾选Server组件,按需配置账号密码和端口信息。完成安装后,通过MySQL控制台输入预设密码验证安装是否成功。

2025-06-09 11:10:18 310

原创 Spring Boot的yml文件配置信息书写及获取

假定一个项目需要连接某个服务器,在配置时直接在代码内部引入配置参数,诸如授权码,服务器域名一类,在代码编写完成时,将代码进行打包后,一旦需要修改其配置信息,会产生诸多不便,可能需要重新在代码里进行修改,打包等一系列操作。为了解决这个问题,我们可以将配置信息编写在外部的配置文件内,并且在代码中对配置信息进行获取即可,即使工程编写完成,已经打包完成,在后期对于配置文件的修改,我们只需要修改外部的配置文件,不需要关注代码本身的修改问题。

2025-06-05 18:22:00 681

原创 关于Spring Boot的配置文件

SpringBoot提供两种配置文件:properties和yml格式。properties文件通过key=value形式配置参数(如server.port=3001),而yaml采用层级缩进结构(如server:port:3002),具有代码简洁、结构清晰的优点。两种方式均可修改服务器端口和上下文路径等配置,经测试均能正确生效。实际开发中推荐使用yml格式(.yml/.yaml),因其省略重复前缀,更直观地展现配置数据的层次关系,提升配置文件的可读性和维护性。

2025-06-05 16:46:14 1231

原创 手动创建一个Spring Boot工程

摘要:创建SpringBoot项目的主要步骤包括:1)创建Maven工程;2)在pom.xml中继承spring-boot-starter-parent并添加起步依赖;3)编写带@SpringBootApplication注解的启动类。具体实现时,需在IDEA中初始化Maven项目,配置父工程和Web依赖,创建启动类并添加resources目录。项目验证可通过复制Controller类并访问localhost:8080/hello来实现。手动创建与框架创建的核心流程相似,主要涉及Maven工程创建、依赖引入

2025-06-04 18:39:03 274

原创 第一个Spring Boot程序

本文介绍了使用IntelliJ IDEA开发SpringBoot的HelloWorld程序。主要步骤包括:创建Maven工程(JDK17+),导入Spring Web依赖;编写带@RequestMapping("/hello")注解的Controller类返回"HelloWorld~";通过@SpringBootApplication启动类运行项目;访问localhost:8080/hello即可看到输出。该示例展示了SpringBoot开发的基本流程:创建项目→添加依赖→编写Controller→启动应用

2025-06-04 16:11:47 301

原创 Spring Boot概述

SpringBoot是简化Spring应用开发的框架,解决了传统方式依赖导入繁琐、配置复杂等问题。其核心特性包括:起步依赖整合所有必需组件,通过单一Maven坐标导入;自动配置功能免去手动声明bean的麻烦;提供内置Tomcat服务器、外部化配置支持以及无XML配置等特性,实现快速项目构建和便捷部署。这些改进显著提升了Spring应用的开发效率和部署灵活性。

2025-06-03 16:42:09 281

原创 C语言选择排序法

C语言for循环应用小程序实例选择排序法#include <stdio.h>#define N 4int main(){ int a[N],i,j,k,t; //输入数组元素 for(i=0; i<N; i++) { printf("请输入a[%d]\t",i); scanf("%d",&a[i]); } //插入排序 for(i=0; i<N-1; i++) {

2021-12-07 23:24:18 190

原创 C语言利用结构体判断年月日

C语言利用自定义结构体,设计函数,并且判断是今年的第几天。#include<stdio.h>struct { int year; int month; int day;}date; int main (){ int days(int year, int month, int day); //调用函数days int day_sum; puts("\t**********时间计算****

2021-12-07 23:22:40 1222

原创 C语言冒泡排序

C语言自定义函数,冒泡排序#include <stdio.h>#include <string.h>void pop(int str[100]) { int i,j,t; for(i=1;i<strlen(str);i++) for(j=0;j<strlen(str)-i;j++) if(str[j]>str[j+1]) { t=str[j];str[j]=str[j+1];str[j+

2021-12-07 23:20:48 170

原创 C语言利用函数验证哥德巴赫猜想

C语言自定义函数小程序(三)利用C语言的自定义函数完成哥德巴赫猜想#include <stdio.h>#include <math.h>int prime(int n) { int i; if(n==2) return 1; for(i=2; i<=sqrt(n); i++) { if(n%i==0) return 0; } return 1;}int main(){ int N,n,i; puts("\n

2021-12-07 23:18:30 991

原创 C语言递推计算年龄问题

C语言自定义函数小程序(二)利用递推思想计算年龄问题#include <stdio.h>int age(int i);int age(int i){ int num; if(i==1) { num=10; } else if(i>1 && i<=5) { num=age(i-1)+3; } else if(i>5) { puts("请输入1至5的整数,系统将帮助您计算该名同学的年龄!"); } return nu

2021-12-07 23:16:25 920

原创 C语言利用指针倒序输出

C语言指针应用(一)利用指针完成操作:输入一串字符并且倒序输出#include <stdio.h>#include <string.h>#include <windows.h>int main(){ char str[80],*p; int i,j; puts("请输入一串字符,并且以Enter结束!"); gets(str); puts("您输入的字符为:"); puts(str); puts("系统正在转换中。。。请

2021-12-07 23:14:13 2680

原创 C语言输出菱形

C语言自定义函数小程序(一)设计一个输出菱形的函数,并且输出验证其正确性。#include <stdio.h>void diamond(int n);int main(){ int n,i; puts("游戏规则如下:请输入5至15内的奇数,系统将输出一个菱形。如果你不遵守游戏规则,你将会受到惩罚!!!\n\n"); puts("**********请输入菱形的层数,为5至15内的奇数**********"); scanf("%d",&n); if(n<15

2021-12-07 23:11:10 783

原创 C语言比较三个数的大小

C语言入门基础小程序(一)输入3个数,并且比较大小#include <stdio.h>void main(){ float a,b,c,t; printf("请输入三个数:"); scanf("%f,%f,%f",&a,&b,&c); if (a>b) { t=a;a=b;b=t; } if (a>c) { t=a;a=c;c=t; } if (b>c) { t=b;b=c;c=t; } printf("%

2021-12-07 22:50:01 2838

原创 C语言1到n while语句

C语言入门基础循环语句(二)while语句#include<stdio.h> void main(){ int i=1,n; int sum=0; printf("请输入一个数:"); scanf("%d",&n); while(i<=n) { sum+=i; i++; } printf("结果:%d\n",sum); }...

2021-12-07 22:46:54 536

原创 C语言1到n do while语句

C语言入门基础循环语句(一)do while语句#include<stdio.h> void main(){ int i=1,n; int sum=0; printf("请输入一个数:"); scanf("%d",&n); do { sum+=i; i++; } while(i<=n); printf("结果:%d\n",sum); }...

2021-12-07 22:44:00 550

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除