- 博客(191)
- 收藏
- 关注
原创 给easyui的textbox组件绑定回车事件
刚开始直接使用jquery的on()、bind()或者keydown()方法直接绑定,但是事件并没有生效。最后,直接把源代码里的inputEvents属性重新定义,保留原来的blur事件。上面的这个代码像是easyui通过这种方式管理了组件的keydown事件。经过上面的修改,终于成功为textbox组件绑定上了keydown事件。于是,就先解绑keydown事件,然后再重新绑定:但是还是绑定失败了。项目里有一个仓库搜索功能,需要为textbox组件绑定一个回车事件。
2025-12-26 03:53:23
205
原创 Spring Boot整合Apache Shiro权限认证框架(实战篇)
查看Authenticator接口的抽象实现类AbstractAuthenticator的authenticate()方法。} else {当访问未授权的资源时,Apache Shiro的过滤器会拦截请求,并返回401状态码。通常,我们需要定义自己的处理逻辑,比如返回一个比较个性化的提示。除了指定未授权的处理路径,还可以通过滤器处理未授权的访问。
2025-12-26 03:14:23
1015
原创 Windows上安装MySQL
这篇文章教大家通过官网文档在Windows操作系统上安装MySQL数据,本篇文章介绍的是通过zip文件安装(免安装)。
2025-12-21 02:52:53
589
原创 聊天应用中发送多个文件的解决方案
在中一次性发送多个文件是博主最近做聊天项目遇到的最大的难题,通过表单可以提交一个文件,或者在表单中声明多个不同name属性的file文件输入框<input type="file" name="xxx" />,然后点击发送的时候提交表单的数据。通常表单的提交使用异步的方式,这就需要使用到Ajax、Axios、Fetch等异步API。同时,需要使用FormData API来手动添加表单项,通过其append()、delete()方法动态增删表单数据。
2025-12-21 02:46:54
378
原创 防止表单重复提交功能简单实现
在绝大多数提交的post请求中,重复提交相同的数据会导致不必要的重复操作。有些操作比较耗时,用户极可能会误以为请求没有响应,所以再次点击操作按钮,无疑会加重系统的负担。因此,防止表单重复提交功能很有必要,是对系统功能的优化。前端异步提交HTTP请求通常会使用两种技术:ajax和axios实现这个功能的思路大致如下:1、前端为每次提交数据的请求生成一个唯一的UUID,在提交数据的时候一起提交到服务端。2、如果用户再次提交同样的请求,就判断这个uuid是不是一样,如果是,说明是重复的请求。3、服务端使用处理器拦
2025-12-21 02:41:55
573
原创 MySQL学习笔记-JSON数据类型
MySQL支持JSON数据类型,可以高效地访问中的数据,并提供了许多操作的方法。文档是结构化数据库里的概念,学过MongoDB的同学应该知道文档就是指的一条记录,而MongoDB里的一条记录就是一个类似JSON的结构(BSON,Binary JSON)。
2025-09-22 07:18:50
784
原创 Apache Dubbo学习笔记-使用Dubbo发布、调用服务
MySQL支持JSON数据类型,可以高效地访问中的数据,并提供了许多操作的方法。文档是结构化数据库里的概念,学过MongoDB的同学应该知道文档就是指的一条记录,而MongoDB里的一条记录就是一个类似JSON的结构(BSON,Binary JSON)。
2025-09-22 07:10:21
741
原创 java.util.Timer详解
摘要:java.util.Timer是JDK提供的定时任务工具类,采用单线程+任务队列机制实现。核心组件包括TaskQueue(基于堆结构的优先队列)和TimerThread(执行线程)。Timer启动时创建线程并进入主循环,当队列为空时阻塞,添加新任务时会唤醒线程。任务调度通过sched()方法实现,将TimerTask加入队列并设置执行时间,线程获取任务后根据时间判断立即执行或等待。这种设计实现了简单的定时任务调度功能,但存在单线程处理的性能局限。
2025-07-04 12:49:44
551
原创 谨慎使用Arrays.asList()方法
再回到前面的java.util.AbstractList这个抽象类,在这里实现了iterator()方法,返回了一个内部类Itr的对象。看到这里,可能很多人就会怀疑是自己的代码的问题,毕竟java.util.ArrayList是支持removeAll()方法的,不可能报错。所以,调用removeAll()方法实际调用的是java.util.AbstractList的removeAll()方法。在Itr中的remove()方法,直接调用了java.util.AbstractList的remove()方法。
2025-06-30 21:29:29
763
原创 LeetCode09-回文数
因为题目给出的条件是x的值在int范围内,int类型的最大值为2_147_483_647(21亿,一共10位数)。因此,数组的长度由于是未知的,所以直接设置为最大值10,可以满足所有数字的要求。因为题目给的实例中,负数不可能对称(只有一个减号),因此负数可以直接返回false。给你一个整数x,如果x是一个回文整数,返回true;回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。1、可以使用字符串,将x转为字符串,然后对字符串进行遍历;回文数的最大特征是,中位数的两边是对称的。
2025-06-16 07:23:06
324
原创 给easyui的textbox绑定回车事件
一开始想着,直接使用js的on或者jquery的keydown方法直接绑定,但是事件不生效。上面的这个代码没看懂,但是像是easyui通过这种方式管理了组件的keydown事件。最后,直接把源代码里的inputEvents属性重新定义,保留原来的blur事件。项目有一个textbox输入框,需要绑定一个回车搜索事件。通过F12查看到输入框已经被绑定了两个keydown事件。经过一番尝试,终于成功绑定了keydown事件。气人的是,还是绑定失败了!
2025-05-18 22:33:01
557
原创 使用java -jar命令指定VM参数-D运行jar包报错问题
在学习Apache Dubbo的时候,需要接入Sentinel Dashboard,所以在启动的时候要指定dashborad的地址和显示的应用名。我一想,难道-D的位置不对?于是又把指定VM参数的命令放在-jar后面。我猛然想起,是不是好像要用=号指定VM参数啊,脑海中回忆起模糊的画面。主要还是没有在运行jar包的时候指定过VM参数,也算长个记性~无法访问jar文件http://loaclhost:8858。果不其然,jar包运行成功了!于是就有了:找不到或无法加载主类。于是,又有了新的报错!
2025-05-15 09:18:19
468
3
原创 依赖spring-boot-starter-parent导致的maven打包问题
只有继承了spring-boot-starter-parent的POM、并且添加了spring-boot-maven-plugin插件的项目在打包时会使用spring-boot-maven-plugin插件。继承了spring-boot-starter-parent的POM,并且添加了spring-boot-maven-plugin插件。我把继承spring-boot-starter-parent的POM的配置删除掉,万万想不到,就不报错了!好吧,是我自己的问题!
2025-05-15 08:51:42
465
原创 使用button时遇到的问题
表单是通过jquery的serialize()方法获取数据,并使用ajax异步提交,所以没有设置action属性(表单的提交路径)和method属性(表单提交方式)。下面就是子女加点对话框的页面代码,【帮助】按钮在一个<form id = "jiadian_form"></form>的表单中。这意味着,在你不知情的情况下点击此按钮,会导致表单数据提交,如果后端没有进行数据验证,那么数据就被偷偷修改了。在火狐浏览器中,button标签的type属性默认是submit,也就是表单提交按钮。
2025-05-14 08:45:50
344
1
原创 Spring框架详解(IOC容器-上)
BeanDefinition是一个接口,实际使用的是其派生类AbstractBeanDefinition。@Nullable// class@Nullable// scope@Nullable@Nullable// primary@Nullable@Nullable@Nullable@Nullable// 其他属性...// getter、setter方法...Spring IOC容器会根据这些BeanDefinition对象来创建Bean,然后保存起来。
2025-03-14 20:47:22
844
原创 Java线程池详解
java.util.concurrent.ThreadPoolExecutor是java.util.concurrent.ExecutorService的一个派生类,代表我们Java中的线程池。在这期间,当前线程会被挂起。当我们通过线程池的execute()方法执行Runable任务时,创建的线程池默认的初始线程数为0。创建一个空的缓存线程池,根据需要创建新线程,但在有可用线程时会重复使用以前构建的线程。当线程池中的线程数量小于corePoolSize,会创建新的线程来处理被添加的任务;
2025-03-01 10:12:35
1098
原创 Spring框架学习笔记-AOP
点切入代号(Pointcut Designators,PCD)是点切入表达式的一部分。Spring AOP支持在点切入表达式中使用以下代号: 经测试@target和@within的作用是一样的。点切入代号代号说明execution用于匹配方法执行连接点。within限制匹配有特定类型的连接点(可以指定多个类型)。this限制匹配Spring AOP代理对象是指定类型的实例的连接点。target限制匹配目标对象是指定类型的实例的连接点。args限制匹配参数是指定类型的实例的连接点。
2025-02-28 11:43:07
1038
原创 Spring Shell——快速构建终端应用,自定义终端命令
使用@ShellComponent+@ShellMethod自定义命令。/***/@ShellMethod("初始化项目环境。")// todoreturn "初始化项目环境完成...";@ShellMethod("打招呼:")public String greet(@ShellOption(defaultValue = "沐雨橙风ιε") String name) {
2024-11-06 16:31:46
946
1
原创 解决上传图片后图片回显的缓存问题
今天在重构项目的时候,发现上传图片之后,因为后台返回的图片地址和原来的一样,回显的图片没有改变,而是显示浏览器缓存的旧图片。这是图片上传工具类的上传图片的代码,在图片路径后面拼接了当时间戳,这样浏览器就不会从缓存中获取图片了,而是获取最新的图片~从根本上解决这个问题就是在图片路径带上一个时刻变化的参数,比如当前时间的时间戳。
2024-08-23 18:24:09
437
原创 解决javascript跨页面传参的中文“乱码”问题
最后通过encodeURIComponent()和decodeURIComponent()方法解决了这个乱码问题~今天发现了项目的一个搜索的问题,在当前页面搜索商品,然后把输入的商品名传到另外一个页面显示查询结果。搜索的页面代码,直接把参数name通过get传参的方式带参跳转到商品列表页面。结果发现参数貌似乱码了~在商品列表解析地址栏参数。
2024-08-07 10:25:50
608
原创 根据类上的注解信息生成创建表的SQL语句
定义一个实体类,在字段上使用knife4j的接口文档注解@ApiModelProperty注解指定字段名。
2024-06-28 18:22:01
583
原创 easyui的topjui前端框架使用指南
博主今天也是第一次点开easyui的商业搜权页面,之前虽然一直在使用easyui前端框架(easyui是我最喜欢的前端ui框架),但是都是使用的免费版。然后就发现了easyui的开发公司居然基于easyui开发出了一个新的前端框架,于是我迫不及待地分享给了大家~
2024-06-27 19:11:20
1478
原创 Spring Boot整合Spring Session Redis
这篇文章介绍一下在springboot项目中整合Spring Session,将session会话信息保存到Redis中,防止重启应用导致会话丢失。
2024-06-24 23:56:03
848
原创 Apache Shiro使用自定义密码匹配器完成密码验证
我们在使用Apache Shiro的API登录时,会先创建一个令牌对象,而经常用的令牌对象是UsernamePasswordToken,通过用户输入的用户名、密码构建一个UsernamePasswordToken对象,然后调用Subject的login()方法登录。而Apache Shiro默认是通过其实现类SimpleCredentialsMatcher来进行输入的密码和数据库的密码的比较(简单的等值比较)。然后神奇的事发生了,当密码输入错误的时候,居然会登录失败,我们并没有写对比密码的代码。
2024-06-24 02:37:36
801
原创 怎么处理整合了Apache Shiro的应用RPC接口鉴权问题
在服务生产者项目pms中定义一个过滤器PermsFilter,名字见名知义,就是shiro的perms过滤器。重写shiro的perms过滤器(PermissionsAuthorizationFilter)的鉴权方法,先判断请求头是否为指定的值,如果是就跳过鉴权,直接返回true。这样就避免了其他应用访问本应用的接口导致的鉴权失败问题了~/*** 定义PermsFilter过滤器(覆盖shiro的perms过滤器)*/@Slf4j@Overrideif (perms!
2024-06-22 03:17:44
760
原创 jquey+mybatis-plus实现简单分页功能
这篇文章介绍一下怎么通过JQuery结合mybatis-plus的分页插件实现原生HTML页面的分页效果,没有使用任何前端框架,主要是对前端知识的应用。
2024-06-18 15:21:56
411
原创 windows上安装MongoDB,springboot整合MongoDB
springboot有整合了MongoDB的依赖,直接在项目的pom.xml中引入,版本和springboot版本一致。
2024-06-04 22:32:51
1956
2
原创 在windows操作系统上安装MariaDB
最近收到关于数据库在哪里看的评论,所以就一不做二不休,把安装数据库的步骤写一篇文章吧。这篇文章介绍如何在windows上完成MariaDB-10.6.5版本的安装,对应MySQL-8.x版本。
2024-06-03 19:45:59
3067
原创 阿里云ECS服务器怎么设置时区
在自己部署在阿里云服务器上的应用中,控制台打印的日志时间和本地不一致,于是决定修改阿里云服务器的时区为Asia/Shanghai。
2024-05-26 15:24:36
867
原创 子线程无法访问父线程中通过ThreadLocal设置的变量
学习过ThreadLocal的童鞋都知道,在子线程中,是无法访问父线程通过ThreadLocal设置的变量的。InheritableThreadLocal就是为了解决这个不可见问题而生的~
2024-05-26 11:59:38
440
原创 关于在子线程中获取不到HttpServletRequest对象的问题
这篇文章主要分享一下项目里遇到的获取request对象为null的问题,具体是在登录的时候触发的邮箱提醒,获取客户端ip地址,然后通过ip地址定位获取定位信息,从而提示账号在哪里登录。总结:遇到这类问题,就把获取request对象的代码放在主线程中,避免因为ThreadLocal的缺陷导致程序异常。
2024-05-26 03:18:52
888
原创 关于redis设置的密码不生效问题
今天申请了阿里云使用3个月的服务器,于是想在服务器上部署一下自己的项目,但是吸取了上次的教训,再也不敢随便开放redis的端口号了,就算要开放redis的端口,也要设置密码,保证不会被挖矿病毒通过redis入侵服务器,导致服务器资源都被浪费在搬砖。于是,就遇到了在Ubuntu操作系统中,尝试了好几次,设置的密码都不生效的问题。发这篇文章,就是为了帮战和我一样不知所措的童鞋,看完这篇文章,希望你能豁然开朗。
2024-05-22 21:56:25
2907
原创 在springboot项目中自定义404页面
很简单,在我们的springboot的静态资源目录下创建一个error包,然后在/error下面创建一个文件404.html。今天点击菜单的时候不小心点开了一个不存在的页面,然后看到浏览器给的一个默认的404页面。后端的程序员都觉得这页面太丑了,那么怎么能自定义404页面呢?为了偷懒,直接把那个默认页面复制下来了,然后再加一点简单的字~
2024-05-15 23:58:11
486
原创 怎么得到所有大写字母/小写字母组成的字符串
有时候,可能需要获取a~z、A~Z组成的26个字母的字符串,这篇文章介绍一种简单的方法。只需要几句简单到不能再简单的代码!你不会还在傻傻地一个个字母敲吧~
2024-05-14 22:41:28
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅