自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 react的快速入门

首先,来看package.json这个文件//dependencies是用来安装依赖的,比如react、react-dom、react-scripts等等//scrips是用来执行一些命令的,比如start、build、test、eject等等。

2025-01-16 16:50:13 92

原创 解决token穿透问题

【代码】解决token穿透问题。

2024-11-25 17:11:56 331

原创 接口实现限流

定义切面类,切点是指定的注解。使用注解修饰限流的控制层接口。

2024-11-25 11:55:42 209

原创 签到送金币项目

/ 使用bitfield命令获取指定范围的二进制数据,内部转为long类型数据返回。// 计算连续签到的天数,(方案:1将数据转为二进制字符串,2位运算)// 如果找到对应的连续签到天数的数据,赠送积分。// 从积分规则表中查询签到送多少积分,// 然后向积分记录表中添加数据。// 然后向积分记录表中添加数据。// 通过redis存储签到信息。// 根据连续签到天数额外送积分。// // 送积分。// 进行连续签到判断。// 签到成功送积分。

2024-11-23 14:59:13 515

原创 短信发送业务

throw new RuntimeException("10分钟内最多发送3次验证码,请稍后再试");throw new RuntimeException("请输入合法的手机号");// 思考题:判断10分钟三次的逻辑,在高并发情况下有问题,如何解决?// 将验证码存入redis,考虑类型和key值。// 如果key不存在,创建key。// 自增后直接获取自增后的值。// 通过正则判断手机号的合法性。// 异步发送短信(线程、mq)// 判断key是否存在。

2024-11-23 11:31:39 553

原创 登录功能业务代码

throw new RuntimeException("用户名错误");throw new RuntimeException("密码错误");// 针对前端提交的密码进行md5处理。// jwt,不需要存入redis。// token放到redis中。

2024-11-23 11:30:32 193

原创 json处理 理解

【代码】json处理 理解。

2024-10-31 15:22:51 320

原创 JWT在项目中运用

JSON Web Token(JWT),它定义了一种简洁的、自包含的协议格式,JWT可以使用HMAC算法或使用RSA的公钥/私钥对进行签名,防止被篡改。

2024-10-26 16:45:39 429

原创 发送短信,验证码

注册阿里云的账号开通短信服务测试短信服务是否可用导入jar-- 短信相关 -->​工具类​​/*** 发送短信工具类*/​static {​/*** 发送短信* @return*/​​try {// 记录错误日志​​AliSmsUtils.sendSms("阿里云短信测试",​。

2024-10-26 16:39:39 748

原创 密码md5加密处理

/ jwt已经存了用户信息,jwt可以设置过期时间,实现之前redis存储登录信息的功能。throw new CommonException("用户名错误");throw new CommonException("密码错误");// 使用jwt做token,一般需要将jwt作为key存到redis中。// hutool提供的加解密的工具类。

2024-10-26 16:36:10 528 1

原创 redis与springBoot整合

设置一个没有登录异常类即可​/*** --- 天道酬勤 ---* @desc 未登录异常*/​// 为了接收状态码​​​。

2024-10-11 22:37:27 885

原创 redis在项目中运用(基础)

mysql学完命令之后,学过jdbc。redis也要使用Java连接redis数据库1.Jedis2.RedisTemplate[重点]

2024-10-11 22:35:37 919

原创 redis基础

Redis是一个key-value存储系统,属于非关系型数据库(NoSQL -> 非关系型数据库 -> Not Only SQL)。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)等类型。为了保证效率,数据都是缓存在内存中,因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作。(Redis也被称作缓存数据库)

2024-10-11 22:34:59 910

原创 Aop在项目中的使用(日志操作)

/写在方法上@MyLog("分页查询计量单位")/*** @Desc 200不是二百*///跨域@Resource@MyLog("分页查询计量单位")// System.out.println("打印一下"+unitSearchParam);@MyLog("计量单位的删除")@MyLog("计量单位的批量删除")@MyLog("计量单位的添加")@MyLog("计量单位的修改")/*** 上传excel表格。

2024-09-30 11:13:06 536

原创 spring boot集成日志

-日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->-- springboot默认是用logback的日志框架的(性能差),所以需要排除logback,不然会出现jar依赖冲突的报错 -->-- 滚动文件 达到触发条件,生成新的文件,原来的内容会存档,存档的文件根据filePatternt规则增加年月日 -->-- Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。

2024-09-30 10:50:59 1742 1

原创 vue2分页

【代码】vue2分页。

2024-09-30 10:46:19 301

原创 Vuex详解

Vuex 是什么?Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。说人话: 实现多个组件的数据共享,即一个数据需要在多个组件中使用,那么就需要把这个数据存储在VueX中。

2024-09-20 22:35:21 1125

原创 Vue-router路由

路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。路由分为前端路由和后端路由1)后端路由是由服务器端进行实现,并完成资源的分发(我们之前的项目)2)前端路由是依靠hash值(锚链接)的变化进行实现 (vue官网就是使用这种)前端路由的基本概念: 根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系 前端路由主要做的事情就是。

2024-09-20 22:32:07 1937

原创 Spring自定义注解

在开发中一般加上注解之后会自动执行一些逻辑,大部分实现的原理是使用AOP切面来实现注解的逻辑的。/** 这是一个切入点* *//*** 切点之前*//*** 切点之后*//*** 切点返回内容后*//*** 切点抛出异常后*/return obj;

2024-09-11 21:57:46 2072 1

原创 Java面试八股文

Java面试八股文总结

2024-09-11 21:14:35 1871 1

原创 SpringBoot整合分页助手

关于分页有些数据默认访问首页,即默认当前页是 pageNum= 1数据有总条数, total = select count(*)页面大小/每页展示多少条数据, pageSize = 10总页数 , pageCount = total / pageSize (需要注意除不尽情况)-- total共7条-- 每页多少条数据: pageSize 3条-- 总页数pageCount-- 当前页pageNum=1-- 查询第1页-- 查询第2页​-- 查询第pageNum页。

2024-09-09 20:23:43 713

原创 SpringBoot动态SQL

如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。注意: 通过application.yml添加日志,显示sql. 通过打印的sql来判断是否拼接成功。-- 需求:查询用户,条件是money=1000,如果密码不为空,也根据密码查。这个元素可以用来定义可重用的 SQL 代码片段,以便在其它语句中使用。-- 将重复的SQL代码抽取成SQL片段,以供复用 -->常见的动态SQL语法。

2024-09-09 20:21:34 1449

原创 Mybatis 多表联查

实体类要设置扩展类以用于封装多表的数据一对一,类中套类一对多,类中套集合正常封装使用resultMap一对一封装使用association一对多封装使用collection。

2024-09-05 23:19:09 698

原创 Mybatis中ORB映射

当数据库的列和实体类属性不一致时,可以通过手动映射来完成手动关联映射,就不再使用resultType,而是使用resultMap,其中写resultMap标签的id。

2024-09-05 23:16:30 429

原创 Mybatis

官网:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层(Dao)框架。用于操作数据库。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

2024-09-04 22:29:08 1156

原创 Spring MVC

引言:Spring Web MVC 框架提供 模型-视图-控制器 架构和随时可用的组件,用于开发灵活且松散耦合的 Web 应用程序。MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。

2024-09-04 22:14:26 1377

原创 Spring核心功能——AOP(面向切面编程)

Spring中另外一个核心功能,AOPAOP(Aspect Oriented Programming),即面向切面编程OOP(Object Oriented Programming ),即面向对象编程.AOP面向切面编程,利用 一种称为"横切"的技术,剖开封装的对象内部,并将那些影响了多个类的公共行为抽取出封装到一个可重用模块),并将其命名 为"Aspect",即切面。

2024-09-03 22:37:33 1622

原创 @Autowired和@Resource的介绍和区别

@Autowired和@Resource区别

2024-09-03 22:29:23 305

原创 Spring核心功能——IOC+DI(控制反转和依赖注入)

IOC是Spring框架的核心功能之一,IOC(inversionofcontrol)控制反转控制: 控制创建对象的能力反转: 原来创建对象是自己做,反转就是将创建对象的能力交给Spring。

2024-09-03 22:24:19 792

原创 Spring注解整理

整理 Spring 框架中的常用注解及其作用可以帮助你更好地理解和使用 Spring。

2024-09-02 21:26:37 516

原创 HashMap的底层原理

HashMap面试一篇概括

2024-09-02 21:23:59 1444

原创 设计模式之观察者模式

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。创建了对象间的一种一对多的依赖关系,当一个对象状态改变时,所有依赖于它的对象都会得到通知并自动更新。

2024-08-30 17:07:20 799

原创 设计模式之模板模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。抽象父类(Abstract Class):具体子类(Concrete Classes):钩子方法(Hook Method)(可选):客户端(Client)(可选):我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。Cricket 和 Football 是扩展了 Gam

2024-08-30 17:01:55 315

原创 设计模式之适配器模式

适配器模式(Adapter Pattern)充当两个不兼容接口之间的桥梁,属于结构型设计模式。它通过一个中间件(适配器)将一个类的接口转换成客户期望的另一个接口,使原本不能一起工作的类能够协同工作。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。假设有一个音频播放器,它只能播放 MP3 文件。

2024-08-30 16:52:55 772

原创 设计模式之装饰器模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。装饰器模式通过嵌套包装多个装饰器对象,可以实现多层次的功能增强。每个具体装饰器类都可以选择性地增加新的功能,同时保持对象接口的一致性。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

2024-08-30 16:39:24 773

原创 String核心设计模式——建造者模式

我们假设一个快餐店的商业案例,其中,一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。建造者模式是一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程与其表示相分离,从而可以创建具有不同表示形式的对象。:负责调用建造者的方法来构建产品,指导者并不了解具体的构建过程,只关心产品的构建顺序和方式。:实现抽象建造者接口,具体确定如何构建产品的各个部分,并负责返回最终构建的产品。:定义了构建产品的抽象接口,包括构建产品的各个部分的方法。接口的实体类,以及一个表示食物包装的。

2024-08-30 15:23:00 1242

原创 Spring的核心设计模式——工厂模式

目录工厂模式工厂模式的类型优点缺点使用场景结构实现步骤 1步骤 2步骤 3步骤 4步骤 5 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。通过使用工厂模式,可以将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。简单工厂模式(Simple Factory Pattern):工厂方法模式(Fa

2024-08-30 11:36:58 1819

原创 单例模式(懒汉,饿汉)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。1.意图确保一个类只有一个实例,并提供一个全局访问点来访问该实例。2.主要解决。

2024-08-29 21:20:29 314

原创 反射(快速入门)

反射就是动态加载对象,并对对象进行剖析。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能成为 Java 反射机制。

2024-08-29 19:33:12 995

原创 过滤器Filter(JavaEE有三大组件: servlet filter linstener)

每个过滤器实现某个特定的功能,当第一个Filter的doFilter方法被调用时,Web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则Web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。客户端对服务器请求之后,服务器调用Servlet之前会执行一组过滤器(多个过滤器),那么这组过滤器就称为一条过滤器链。

2024-08-28 23:20:12 737

空空如也

空空如也

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

TA关注的人

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