- 博客(54)
- 收藏
- 关注
原创 拦截器快速入门及详解
是一种动态拦截方法调用的机制,类似于过滤器。拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。拦截器的作用:拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码。
2025-01-30 21:55:54
1126
原创 日志技术的使用
什么是日志?日志就好比生活中的日记,可以随时随地记录你生活中的点点滴滴。程序中的日志,是用来记录应用程序的运行信息、状态信息、错误信息的。为什么要在程序中记录日志呢?便于追踪应用程序中的数据信息、程序的执行过程。便于对应用程序的性能进行优化。便于应用程序出现问题之后,排查问题,解决问题。便于监控系统的运行状态。... ...之前我们编写程序时,也可以通过来输出日志,为什么我们还要学习单独的日志技术呢?这是因为,如果通过来记录日志,会存在以下几点问题:硬编码。
2025-01-30 21:08:28
829
原创 Redisson实现延迟队列
Redisson就是对Redis封装,使用Redisson实现分布式锁,实现布隆过滤器,实现延迟消息。redissonClient.getBlockingDeque(): 创建一个阻塞队列。redissonClient.getDelayedQueue(): 获取延迟队列。delayedQueue.offer(): 向队列中存储数据。blockingDeque.take(): 从队列中获取数据。生成订单,使用微信支付,30分钟不支付订单自动取消。与业务整合,根据订单id取消订单。
2024-12-18 19:57:32
374
原创 Redisson实现分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格,封装很多功能,比如分布式锁,布隆过滤器,可以使用很简单方式实现这些功能。
2024-12-17 11:02:02
978
原创 MongoDB快速入门
MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款分布式文档数据库,由C++语言编写。目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。在MongoDB中数据主要的组织结构就是数据库、集合和文档,文档存储在集合当中,集合存储在数据库中。MongoDB中每一条数据记录就是一个文档,数据结构由键值(key=>value)对组成。文档类似于 JSON 对象,它的数据结构被叫做BSON。
2024-11-25 11:32:08
1318
原创 ThreadPoolExecutor线程池与CompletableFuture线程异步编排
ThreadPoolExecutor线程池与CompletableFuture线程异步编排
2024-10-29 09:50:41
1004
1
原创 openFeign的使用
OpenFeign 是一个基于 Spring 的声明式、模板化的 HTTP 客户端,它简化了编写 Web 服务客户端的过程。用户只需创建一个接口并添加相应的注解,即可实现对远程服务的调用。OpenFeign 是 Spring Cloud 的一部分,它支持 Spring MVC 的注解,如 @RequestMapping,使得使用 HTTP 请求访问远程服务就像调用本地方法一样直观和易于维护。Openfeign底层默认使用JDK提供的HttpURLConnection进行通信(不支持连接池),使用Openfe
2024-08-30 23:39:39
871
原创 nacos介绍及在Linux系统中docker使用nacos
一次业务中,被其它微服务调用的服务。(提供接口给其它微服务):一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)试想一下,假如商品微服务被调用较多,为了应对更高的并发,我们进行了多实例部署,如图:此时,每个的实例其IP或端口不同,问题来了:item-service这么多实例,cart-service如何知道每一个实例的地址?http请求要写url地址,服务到底该调用哪个实例呢?如果在运行过程中,某一个实例宕机,依然在调用该怎么办?如果并发太高,临时多部署了N台实例,
2024-08-29 23:44:30
794
原创 Mybatis-Plus分页插件注意事项
使用Mybatis-Plus的分页插件进行分页查询时,如果结果需要使用进行映射,只能使用嵌套查询,而不能使用嵌套结果映射
2024-08-18 11:28:56
314
原创 springboot生成、响应图片验证码
我们平时经常会碰见图片验证码,那么在springboot中我们该怎么实现呢我们可以使用一款开源的验证码生成工具,其支持多种类型的验证码,例如gif、中文、算术等,并且简单易用,具体内容可参考其。
2024-08-16 23:12:26
437
原创 MP逻辑删除、响应忽略字段、自动填充
由于数据库中所有表均采用逻辑删除策略,所以查询数据时均需要增加过滤条件is_deleted=0。上述操作虽不难实现,但是每个查询接口都要考虑到,也显得有些繁琐。为简化上述操作,可以使用Mybatis-Plus提供的逻辑删除功能,它可以自动为查询操作增加is_deleted=0过滤条件,并将删除操作转为更新语句。具体配置如下,详细信息可参考。:在中增加如下内容:在实体类中的删除标识字段上增加注解逻辑删除功能只对Mybatis-Plus自动注入的sql起效,也就是说,对于手动在Mapper.xml。
2024-08-01 14:27:40
638
原创 Springboot中Knife4j快速入门
Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,下图是其工作界面。
2024-07-29 16:30:12
356
原创 MybatisPlus分页插件
分页查询是一个很常见的需求,故Mybatis-Plus提供了一个分页插件,使用它可以十分方便的完成分页查询。下面介绍Mybatis-Plus分页插件的用法,
2024-07-27 20:24:11
389
原创 MybatisPlus静态工具Db
在开发的时候,有时Service之间也会相互调用,会出现循环依赖问题,MybatisPlus提供一个静态工具类:Db,其中的一些静态方法与IService中方法签名基本一致,也可以帮助我们实现CRUD功能。
2024-05-26 18:06:35
931
1
原创 MybatisPlus教程
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2024-05-16 16:45:00
1229
原创 SpringBoot项目部署为jar包
SpringBoot项目部署为jar包:目前所写的项目都是保存在自己电脑上运行的,别人无法使用,一般来说写好的项目会部署到固定的服务器或者租来的云服务器上面
2024-04-29 20:44:38
526
2
原创 蓝桥杯2023年第十四届省赛真题-冶炼金属
现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。当 V = 20 时,有:⌊75/20⌋ = 3,⌊ 53/20 ⌋ = 2,⌊ 59/20 ⌋ = 2,可以看到符合所有冶炼记录。当 V = 25 时,有:⌊75/25⌋ = 3,⌊ 53/25 ⌋ = 2,⌊ 59/25 ⌋ = 2,可以看到符合所有冶炼记录。对于 100% 的评测用例,1 ≤ N ≤ 104,1 ≤ B ≤ A ≤ 109。
2024-04-11 15:38:34
394
原创 BFS例题 青蛙跳杯子
X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星的青蛙很有些癖好,它们只做3个动作之一:1. 跳到相邻的空杯子里。2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只要1步,就可跳成下图局面:WWW*BBB
2024-03-29 20:16:25
362
原创 枚举——四平方和
四平方和定理,又称为拉格朗日定理每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0包括进去,就正好可以表示为 4个数的平方和。比如:5=0^2+0^2+1^2+2^2。7=1^2+1^2+1^2+2^2。对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4个数排序使得 0≤a≤b≤c≤d。并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。
2024-03-25 20:31:49
257
原创 分享一道DFS常见题目 C++实现路径之谜
小明冒充X星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是 n x n 个方格。【如图1.png】所示。按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内各有 n 个靶子)同一个方格只允许经过一次。但不必走完所有的方格。如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?
2024-03-25 20:09:08
307
原创 session和cookie理解
cookie是一些数据信息,存储在浏览器端。session是存储于服务器端的特殊对象,服务器会为每一个浏览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个浏览器(客户端)独享的。我们可以在session存储数据,实现数据共享。
2024-02-19 20:24:19
427
原创 SpringBoot中全局异常处理
SpringBoot给我们提供了@ControllerAdvice和 @ExceptionHandler注解注解的作用:@ControllerAdvice用来开启全局的异常捕获,@ExceptionHandler用来说明捕获哪些异常,并对这些捕获的异常进行处理。
2024-02-08 23:52:44
858
原创 分享一个在线properties与yml文件互转的网站
在线yaml转properties-在线properties转yaml-ToYaml.com
2024-02-06 23:17:12
691
1
原创 Maven高级知识——分模块开发、继承与聚合
所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。 继承与聚合对比作用聚合用于快速构建项目继承用于简化依赖配置、统一管理依赖相同点:聚合与继承的pom.xml文件打包方式均为pom,通常将两种关系制作到同一个pom文件中聚合与继承均属于设计型模块,并无实际的模块内容不同点:聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
2024-02-02 21:48:00
1278
1
原创 密码加密——MD5与BCryptPasswordEncoder
MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。BCryptPasswordEncoder加密,BCrypt 是一种密码散列函数,即单向函数。且每次加密过后的值都不一样!
2024-01-29 22:25:30
1820
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人