- 博客(229)
- 收藏
- 关注
原创 工厂+策略模式
这种结合方式既利用了Spring容器的依赖注入能力,又实现了策略模式的灵活性,是实际项目中非常实用的设计模式应用。消除条件判断:代替复杂的if-else或switch。数据导出:Excel、PDF、CSV等格式。解耦:使用者不需要知道具体的实现类。开闭原则:新增策略无需修改现有代码。文件存储:本地、OSS、七牛云等。可测试性:每个策略可以独立测试。支付渠道:支付宝、微信、银联等。统一创建:集中管理对象的创建。消息通知:短信、邮件、推送等。灵活:易于扩展新的策略实现。
2025-11-11 15:02:39
193
原创 IDEA新UI设置
Debug的Evaluate Expression在新版本中需要在debug模式下点击三个点(更多)才能选择,这样有点麻烦,也可以通过操作把他调出来。最近idea更换了新UI,但是还是习惯于之前的操作。点击对话框Main Toolbar 的VSC Group,点击+号,选择想要的Git操作即可。在debug顶部栏右键->选择Customize Toolbar。顶部栏黑色区域右键点击:选择。
2025-11-04 14:45:11
166
原创 IDEA报Cannot connect to already running IDE instance. Exception: Process 7,792 is still running
win键+R---输入:taskmgr---任务管理器搜索框:7792(注:我的提示框是7792,你的根据实际情况输入)---下方会过滤出当前进程,右击---结束服务。提示说启动ide失败,因为。,手动停止7792进程了。
2025-10-22 16:09:30
110
原创 sa-token笔记
为此,Sa-Token 提供了扩展接口,你可以轻松将会话数据存储在一些专业的缓存中间件上(比如 Redis), 做到重启数据不丢失,而且保证分布式环境下多节点的会话一致性。在app、小程序等前后端分离场景中,一般是没有 Cookie 这一功能的,此时大多数人都会一脸懵逼,咋进行鉴权啊?每次请求不能自动提交了,那就手动提交。(难点在前端如何将 Token 传递到后端,同时后端将其读取出来)(难点在后端如何将 Token 传递到前端)那就是,将 token 塞到请求header里。
2025-10-21 10:09:57
284
原创 服务集成XXL-job
你的应用(如 order-service)启动。XXL-Job执行器通过配置的 admin-appname: ruoyi-xxl-job-admin,从注册中心找到调度中心的服务实例。执行器向调度中心发送注册请求,说:“我是 order-service-executor,我在这里 [本机IP]:9901,我可以干活了”。执行器定时向调度中心发送心跳,保持在线状态。
2025-10-17 10:43:41
623
原创 跨数据源操作
在MyBatis-Plus中实现跨数据源查询,最简便的方法是使用官方推荐的组件。它允许你通过一个简单的@DS注解来切换数据源。下面是一个详细的配置和使用指南。后面也会介绍下进行数据源切换。
2025-10-16 15:42:21
764
原创 自定义倒计时返回NaN:NaN:NaN
先看下这段代码,在绝大多数情况下执行正常,但是小部分用户反馈返回上面这段代码中deadLine预期是一个Dete类型,并且是由转换而来,而new Date() 的参数格式有严格要求。
2025-10-16 10:47:37
209
原创 Excel导出报Can not find ‘Converter‘ support class Map.
Override@Override@Override// 导入时不需要@Override// 将 Map 转换为字符串格式导出try {
2025-10-14 16:31:06
442
原创 MyBatis-Plus实现分页查询
相比于mybaits需要引入PageHelper依赖不同,myBatis-Plus本身就支持分页,只需要配置分页插件,只有添加了分页插件,后续的分页查询才能真正实现分页查询。设置了分页的页数及每页大小,设置后MP会自动拦截为SQL添加limit。并且查询后的记录也设置到pageInfo中。在开启分页配置后,需要扫描相关的组件。在进行分页操作时,可能涉及数据库的读写操作,开启事务管理可以确保数据的一致性和完整性。MP 的分页插件会自动帮你改造 SQL。配置路径的未知,以下是更多参数的配置。
2025-10-13 11:29:39
124
原创 computeIfAbsent用法讲解
super K,?key: 要与指定值关联的键。mappingFunction: 一个函数式接口(通常是 Lambda 表达式或方法引用)。它接受 key 作为输入,并计算(Compute)出要返回的值。只有当 key 对应的映射不存在(Absent)或为 null 时,这个函数才会被调用。返回值: 返回与指定键关联的当前(现有的或新计算的)值;如果计算后的值仍为 null,则返回 null。
2025-09-17 16:12:41
963
原创 微服务高可用流程讲解
用户 访问 api.yourcompany.com (VIP)。Nginx (SLB) 接收到请求,根据负载均衡算法,将其转发到一台健康的 Gateway 实例上。Gateway 接收到请求,解析路径,确定要访问的服务(如 /user/api/1 -> user-service)。Gateway 查看其本地的服务列表(这个列表是它从连接的Nacos集群节点那里定时拉取并缓存的),通过负载均衡器选出一个健康的 user-service 实例地址(如 192.168.1.201:8080)。
2025-09-17 15:55:28
906
1
原创 若依框架启动nacos报No DataSource set
你的 Nacos 启动失败是因为它运行在单机模式,但没有配置所需的外部 MySQL 数据库。
2025-09-05 14:56:44
782
原创 SpringBoot进行国际化配置
创建文件:在 resources/ 下创建 messages_xx.properties 文件。(可选) 配置:在 application.properties 中微调 MessageSource 设置。模板中使用:在 Thymeleaf 等模板中使用 #{} 语法。后端中使用:注入 MessageSource,使用 getMessage 方法。配置解析器:定义一个 LocaleResolver Bean(如 SessionLocaleResolver)来决定如何获取语言环境。
2025-09-05 11:07:40
982
原创 pip install安装包成功后仍不可使用问题
但是运行还是报错,其实是因为使用有多个python解释器,而在控制台进行安装运行的是默认的python解释器,安装的包就在对应C盘下的。安装包成功后仍报包找不到问题。
2025-04-13 14:36:56
425
原创 redisson常用加锁方式
tryLock 会尝试获取锁,如果锁被占用,且没有在 DEFAULT_WAIT_TIME 规定的时间内成功获取锁,则会放弃,返回 false。是对 Redisson 锁操作的封装,提供了更高层次的 API,使得锁的操作更加简便且灵活,减少了需要手动处理的锁等待和持有时间等逻辑。redissonDistributedLocker 更适合在业务中封装常见的分布式锁操作,它提供了简单的 API 以便快速实现分布式锁,特别是当你有一套统一的锁处理逻辑时。获取到锁后,锁自动过期的时间,也就是锁的最大持有时间。
2025-04-09 15:16:41
974
原创 Linux创建用户组并分配用户权限
理论上,你可以创建一个用户组,命名为任何你喜欢的名字,比如 docker-users、devops 等,然后将用户加入这个组,也能实现类似的效果。为了避免每次运行 Docker 命令时都需要使用 sudo,你可以将用户添加到 docker 组,从而授予该用户对 Docker 守护进程的访问权限。答:是的,创建一个名为 docker 的用户组,并将用户加入该组,意味着这些用户可以在不使用 sudo 的情况下执行 Docker 命令。Docker 用户组的名称 docker 是 Docker 官方建议的惯例。
2025-01-22 15:35:55
1390
原创 镜像拉取时提示:manifest unknown: manifest unknown
具体来说,Docker 仓库(比如 Docker Registry)提供了一些 API 来与仓库进行交互,/v2/ 表示你正在使用该仓库的 第二版 API(Version 2)。假如你的仓库是私有的,可能还需要进行身份验证。这个错误信息表示 客户端无法在 registry:5000 仓库中找到名为nginx并带有标签 20250110144306 的镜像。v2 是目前使用的最新版本,支持更高效的镜像存储和拉取方式。v2 在这个 URL 中指的是 Docker 镜像仓库 API 的版本号。
2025-01-22 14:12:12
3464
原创 Error response from daemon: Get “https://registry:5000/v2/“: http: server gave HTTP response to HTTP
这个错误信息表示 Docker 客户端尝试通过 HTTPS 访问镜像仓库,但该仓库仅支持 HTTP 协议,而 Docker 默认使用 HTTPS 来连接仓库,因此导致了协议不匹配的问题。这说明 Docker 客户端试图通过 HTTPS 连接 registry:5000,但仓库只支持 HTTP 协议,因此返回了错误的响应。
2025-01-22 13:59:16
1131
原创 docker运行长期处于activating (start)
启动docker卡住长时间无响应,使用。,这个状态表示启动中,还未启动完成。查看docker运行状态发现。
2025-01-21 13:50:52
567
原创 Java项目如何配置@Slf4j日志打印
在 Java 项目中使用@Slf4j进行日志打印需要依赖于和这两个库。通过这些库,可以简化日志记录代码,减少冗余。
2025-01-15 09:28:13
2906
原创 Java配置log4j日志打印
在 Java 代码中,你可以使用 Log4j 记录日志。首先,导入 Log4j 的 API 类,然后创建 Logger 对象。Log4j 需要一个配置文件来定义日志输出的方式、级别和格式。
2025-01-14 16:33:53
1089
原创 Java打包主函数代码为jar
常用的打包操作总是会将一个SpringBoot打包成一个jar包部署到服务器上提供接口给前端访问,但是如果是一个普通的Java项目要作为一个脚本程序部署到服务器上时该如何打包成jar进行部署呢?下面进行简单的介绍。在 Maven 项目中,默认情况下,生成的 JAR 文件名称是由 pom.xml 文件中的 artifactId 和 version 元素决定的。命令运行jar包查看是否能正常运行。
2025-01-13 17:07:11
312
原创 Python学生管理系统(MySQL)
对于修改数据库(如插入、更新、删除)等操作,通常需要提交事务。commit() 方法用于提交事务,rollback() 用于回滚事务。一旦建立了连接,你可以使用游标(cursor)来执行 SQL 查询。例如,查询数据、插入数据、更新数据等。在完成操作后,一定要关闭游标和数据库连接,以释放资源,通过finally执行关闭操作。下面我会简要讲解 python操作MySQL的一些常用功能等。选择需要修改的学生信息就可以更改了。
2024-12-28 16:48:59
742
原创 python学生管理系统(图形化GUI管理界面)
又到学期末啦,很多同学又在忙着完成大作业了,很多同学的第一门编程作业往往都是学生管理系统或者图书管理系统,虽然功能简单,但对于第一次接触编程的同学来说实现起来还不是那么容易,今天我就来分享一下python实现的图形化学生管理系统,包含了基本的增改查功能,而且还区分了管理员和学生权限,管理员具备增改查的权限,而学生则只具备查看的权限。
2024-12-25 00:04:00
1147
原创 vue el-date-picker 日期选择器禁用失效问题
否则会导致日期选择器禁用失效问题,因为该组件默认的格式就是yyyy-MM-dd。
2024-11-13 17:57:10
1239
1
原创 vue el-date-picker 日期选择 回显后成功后无法改变的解决办法
在实现一个前端页面默认时间选择时遇到了手动选择日期无法回显但在浏览器vue插件监控属性时却能看到手动选择的值的问题。加上这两行代码就能解决上述问题了。在钩子函数默认选择昨天。
2024-11-13 17:41:35
929
原创 MyBatis-plus的saveBatch性能提升
发现执行效率非常慢,当我测试插入10万条数据时,测试用例跑了半个小时,如果是每次执行。最近在实现大数据量批量入库时采用mybatis-plus的。是用于批量新增,在批量新增上效率应该是较快的,但跟。这样就能在批量新增时进行一次数据库的连接和释放。效率确实会比较慢,但。
2024-11-11 11:44:29
724
原创 豆瓣爬取250部电影保存到excel
当然我们还可以将代码进行优化,比如将图片的url地址换成图片并且加上tkinter进行可视化,让用户输入要爬取多少页,如果加上tkinter比较麻烦还可以直接将文件打包成exe,发给老师或者同学运行,运行后输入即可爬取的页面就可以进行数据爬取了。如何爬取豆瓣评分前250部的电影,我们可以使用Python来快速的实现,爬取其实就是发起网络请求,而利用程序发起可以更加方便快捷,不用频繁地进行点击,只需要我们把要爬取的数据之间相同的规律总结处理,利用这个规律解析出数据即可。的标签中,所以只需要遍历出250个。
2024-10-20 17:26:10
909
1
原创 Jar包导入本地maven仓库
当jar包未引入到公共maven仓库时,直接通过maven坐标的方式引入会报错,找不到该依赖。所以可以将jar包导入到本地maven仓库,再通过maven坐标引入后就没有问题。这条命令用于将一个 JAR 文件手动安装到本地 Maven 仓库中。这通常用于在项目中使用尚未发布到公共 Maven 仓库的本地 JAR 文件。
2024-08-26 17:24:27
2301
原创 @Validate分组验证参数
在你提到的 @Validated(value = Group.DELETE.class) 中,value = Group.DELETE.class 是一个参数,它的作用是指定验证时使用的验证分组(Validation Group)。那么就可以定义一个删除操作的验证分组,其中包含对用户权限的验证规则。需要注意的是,@Validated 注解是 Spring 框架提供的,与 @Valid 注解不同,后者是 Bean Validation(JSR-380)规范中的注解。
2024-05-08 10:10:50
850
原创 设计模式之责任链讲解
/ 定义抽象处理者接口// 自定义// 公共方法实现公共方法@OverrideSystem.out.println("采购员对订单统一处理");@Override// 在请求处理之前执行的操作,比如权限检查,未登录则直接拦截if (!// 放行// 可以不重写该方法@Override// 在请求处理之后执行的操作// 可以不重写该方法@Override// 在请求完成之后执行的操作// 检查用户是否有权限// 这里假设简单地检查请求中是否包含合法的身份验证信息。
2024-04-13 23:29:23
978
原创 idea使用git
点击 IDEA 右下角的分支名称,然后选择目标分支 B。在 IDEA 的界面中,点击顶部菜单栏的 “VCS” -> “Git” -> “Merge Changes”. 在弹出的对话框中,选择来源分支为 A 分支,然后点击 “Merge”。通过以上步骤,你就可以在 IntelliJ IDEA 中将你的分支(A 分支)上的代码合并到目标分支 B,并且将合并后的代码推送到远程仓库。在 IDEA 的界面中,点击顶部菜单栏的 “VCS” -> “Git” -> “Push”,将合并后的代码推送到远程仓库。
2024-03-05 17:19:52
2577
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅