- 博客(181)
- 收藏
- 关注
原创 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
745
原创 Java线程池详解
java.util.concurrent.ThreadPoolExecutor是java.util.concurrent.ExecutorService的一个派生类,代表我们Java中的线程池。在这期间,当前线程会被挂起。当我们通过线程池的execute()方法执行Runable任务时,创建的线程池默认的初始线程数为0。创建一个空的缓存线程池,根据需要创建新线程,但在有可用线程时会重复使用以前构建的线程。当线程池中的线程数量小于corePoolSize,会创建新的线程来处理被添加的任务;
2025-03-01 10:12:35
915
原创 Spring AOP(教科书式的教程)
点切入代号(Pointcut Designators,PCD)是点切入表达式的一部分。Spring AOP支持在点切入表达式中使用以下代号: 经测试@target和@within的作用是一样的。点切入代号代号说明execution用于匹配方法执行连接点。within限制匹配有特定类型的连接点(可以指定多个类型)。this限制匹配Spring AOP代理对象是指定类型的实例的连接点。target限制匹配目标对象是指定类型的实例的连接点。args限制匹配参数是指定类型的实例的连接点。
2025-02-28 11:43:07
881
原创 Spring Shell——快速构建终端应用,自定义终端命令
使用@ShellComponent+@ShellMethod自定义命令。/***/@ShellMethod("初始化项目环境。")// todoreturn "初始化项目环境完成...";@ShellMethod("打招呼:")public String greet(@ShellOption(defaultValue = "沐雨橙风ιε") String name) {
2024-11-06 16:31:46
635
原创 解决上传图片后图片回显的缓存问题
今天在重构项目的时候,发现上传图片之后,因为后台返回的图片地址和原来的一样,回显的图片没有改变,而是显示浏览器缓存的旧图片。这是图片上传工具类的上传图片的代码,在图片路径后面拼接了当时间戳,这样浏览器就不会从缓存中获取图片了,而是获取最新的图片~从根本上解决这个问题就是在图片路径带上一个时刻变化的参数,比如当前时间的时间戳。
2024-08-23 18:24:09
328
原创 解决javascript跨页面传参的中文“乱码”问题
最后通过encodeURIComponent()和decodeURIComponent()方法解决了这个乱码问题~今天发现了项目的一个搜索的问题,在当前页面搜索商品,然后把输入的商品名传到另外一个页面显示查询结果。搜索的页面代码,直接把参数name通过get传参的方式带参跳转到商品列表页面。结果发现参数貌似乱码了~在商品列表解析地址栏参数。
2024-08-07 10:25:50
453
原创 根据类上的注解信息生成创建表的SQL语句
定义一个实体类,在字段上使用knife4j的接口文档注解@ApiModelProperty注解指定字段名。
2024-06-28 18:22:01
488
原创 easyui的topjui前端框架使用指南
博主今天也是第一次点开easyui的商业搜权页面,之前虽然一直在使用easyui前端框架(easyui是我最喜欢的前端ui框架),但是都是使用的免费版。然后就发现了easyui的开发公司居然基于easyui开发出了一个新的前端框架,于是我迫不及待地分享给了大家~
2024-06-27 19:11:20
774
原创 Spring Session将HttpSession保存到Redis中,实现重启应用会话不丢失
这篇文章介绍一下在springboot项目中整合Spring Session,将session会话信息保存到Redis中,防止重启应用导致会话丢失。
2024-06-24 23:56:03
414
原创 使用自定义的shiro密码匹配器CredentialsMatcher完成密码验证
CredentialsMatcher的接口,这个接口的中文含义就是密码匹配器,而shiro默认通过其实现类。SimpleCredentialsMatcher来进行输入的密码和数据库的密码的比较(简单的等值比较)。然后神奇的事发生了,当密码输入错误的时候,居然会登录失败,我们并没有写对比密码的代码。一般在这里,我们会根据用户输入的用户名/手机号等查询数据库,然后把查询的结果封装成。我们使用shiro的API登录时,会先创建一个令牌对象,而经常用的令牌对象是。当数据库存储的密码不是明文时,就不能使用默认的。
2024-06-24 02:37:36
541
原创 怎么处理整合了shiro的应用的RPC接口鉴权问题
在服务生产者项目pms中定义一个过滤器PermsFilter,名字见名知义,就是shiro的perms过滤器。重写shiro的perms过滤器(PermissionsAuthorizationFilter)的鉴权方法,先判断请求头是否为指定的值,如果是就跳过鉴权,直接返回true。这样就避免了其他应用访问本应用的接口导致的鉴权失败问题了~/*** 定义PermsFilter过滤器(覆盖shiro的perms过滤器)*/@Slf4j@Overrideif (perms!
2024-06-22 03:17:44
669
原创 jquey+mybatis-plus实现简单分页功能
这篇文章介绍一下怎么通过JQuery结合mybatis-plus的分页插件实现原生HTML页面的分页效果,没有使用任何前端框架,主要是对前端知识的应用。
2024-06-18 15:21:56
344
原创 windows上安装MongoDB,springboot整合MongoDB
springboot有整合了MongoDB的依赖,直接在项目的pom.xml中引入,版本和springboot版本一致。
2024-06-04 22:32:51
1590
2
原创 在windows操作系统上安装MariaDB
最近收到关于数据库在哪里看的评论,所以就一不做二不休,把安装数据库的步骤写一篇文章吧。这篇文章介绍如何在windows上完成MariaDB-10.6.5版本的安装,对应MySQL-8.x版本。
2024-06-03 19:45:59
2269
原创 阿里云ECS服务器怎么设置时区
在自己部署在阿里云服务器上的应用中,控制台打印的日志时间和本地不一致,于是决定修改阿里云服务器的时区为Asia/Shanghai。
2024-05-26 15:24:36
571
原创 子线程无法访问父线程中通过ThreadLocal设置的变量
学习过ThreadLocal的童鞋都知道,在子线程中,是无法访问父线程通过ThreadLocal设置的变量的。InheritableThreadLocal就是为了解决这个不可见问题而生的~
2024-05-26 11:59:38
331
原创 关于在子线程中获取不到HttpServletRequest对象的问题
这篇文章主要分享一下项目里遇到的获取request对象为null的问题,具体是在登录的时候触发的邮箱提醒,获取客户端ip地址,然后通过ip地址定位获取定位信息,从而提示账号在哪里登录。总结:遇到这类问题,就把获取request对象的代码放在主线程中,避免因为ThreadLocal的缺陷导致程序异常。
2024-05-26 03:18:52
668
原创 关于redis设置的密码不生效问题
今天申请了阿里云使用3个月的服务器,于是想在服务器上部署一下自己的项目,但是吸取了上次的教训,再也不敢随便开放redis的端口号了,就算要开放redis的端口,也要设置密码,保证不会被挖矿病毒通过redis入侵服务器,导致服务器资源都被浪费在搬砖。于是,就遇到了在Ubuntu操作系统中,尝试了好几次,设置的密码都不生效的问题。发这篇文章,就是为了帮战和我一样不知所措的童鞋,看完这篇文章,希望你能豁然开朗。
2024-05-22 21:56:25
2505
原创 在springboot项目中自定义404页面
很简单,在我们的springboot的静态资源目录下创建一个error包,然后在/error下面创建一个文件404.html。今天点击菜单的时候不小心点开了一个不存在的页面,然后看到浏览器给的一个默认的404页面。后端的程序员都觉得这页面太丑了,那么怎么能自定义404页面呢?为了偷懒,直接把那个默认页面复制下来了,然后再加一点简单的字~
2024-05-15 23:58:11
347
原创 怎么得到所有大写字母/小写字母组成的字符串
有时候,可能需要获取a~z、A~Z组成的26个字母的字符串,这篇文章介绍一种简单的方法。只需要几句简单到不能再简单的代码!你不会还在傻傻地一个个字母敲吧~
2024-05-14 22:41:28
367
原创 Uncaught InternalError: too much recursion
第一次触发onClose事件是点击确定按钮的时候,saveChange()方法的最后一句代码主动关闭对话框。但是经过我三分钟的思考,发现原来是因为onClose()事件被反复触发了,导致页面卡顿。今天在敲代码的时候偶然间发现项目因为一次操作导致浏览器变得非常卡,而且控制台还报错了。突如起来的报错和页面异常卡顿给我整不会了ovo,点开报错的地方,直接跳转到对应的代码。问题找到了,把绑定的onClose()事件删掉,问题完美解决~看到这个代码,我愣了一下,这怎么会报错呢?
2024-05-14 14:53:26
736
原创 清理缓存简单功能实现
在程序开发中,经常会用到缓存,最常用的后端缓存技术有Redis、MongoDB、Memcache等。而有时候我们希望能够手动清理缓存,点一下按钮就把当前Redis的缓存和前端缓存都清空。功能非常简单,创建一个控制器类CacheController,并提供一个post请求的接口/cache/clean供用户使用。
2024-05-11 16:28:04
758
原创 Java通过百度地图API获取定位-普通IP定位
上面的代码已经是进行了一定的优化,除此之外,可以把AK和SK配置到application.yml中,可以动态地修改。最后重命名一下这个类,改成类似LocationUtils这样的名字。t=N7T8百度地图开放平台 | 百度地图API SDK | 地图开发https://lbsyun.baidu.com/index.php?
2024-05-10 20:36:32
4344
原创 使用MyBatis-Plus构造的SQL语句错误导致查询的数据不正确的问题
为了解决这个问题,又去MyBatis-Plus源代码里看了一下有没有类似的方法可以给and条件里的多个条件加上一对括号。但是查询的时候的条件构造器是这样写的(不知道当时写代码的时候,自己是咋想的oVo)上面的代码导致了查询的数据和实际的数据不一致,因为上面的sql语句对应是这样的。最后发现:MP果然给我们提供了条件嵌套的两个方法。最后,经过了几次踩坑终于把SQL语句构造好了~
2024-04-28 20:38:42
517
原创 Java怎么获取今天最早的时间
今天在实现项目里的一个功能的时候,需要获取今天最早的时间,比如今天是2024-4-15,则今天的开始时间为2024-4-14日24点之后(2024-4-15零点)的那个时间点。很简单,通过LocalDateTime.now()获取当前时间,然后用这个时间分别减去当前时间的。
2024-04-15 22:53:38
580
原创 个人推荐Redis比较好的一种使用规范
随着对个人项目的不断开发、迭代和重构,博主在这个过程中总结出了一套使用redis的较好的规范。主要包含Redis的key命名规范和Redis代码规范。
2024-04-03 10:38:55
938
原创 搭建nacos集群,并通过nginx实现负载均衡
nacos、eureka、consul、zookeeper等都是常用的微服务注册中心,这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群,以及通过nginx的反向代理功能实现nacos的负载均衡。首先,需要一台安装了Ubuntu系统的服务器或者虚拟机。
2024-03-10 21:59:22
5342
4
原创 Redis保证数据一致性-延时双删代码实现
Redis和数据库的数据一致性在某些场景下非常重要,如何最大程度保证Reids和数据库之间的数据一致呢?想必大家第一时间会想到延时双删策略:在修改数据库之前删除缓存,然后数据库中的数据修改完成后,再过一段时间再删一次缓存。这篇文章就如何实现延时双删提供了案例代码,代码可能不是最优的,但是确实能够达到双删的效果。
2024-03-10 02:57:57
2039
原创 SpringBoot整合Knife4j接口文档工具
一个好的项目,接口文档是非常重要的,除了能帮助前端和后端开发人员更快地协作完成开发任务,接口文档还能用来生成资源权限,对权限访问控制的实现有很大的帮助。这篇文章介绍一下企业中常用的接口文档工具Knife4j(基于Swagger实现)的使用。
2024-02-06 19:21:41
1917
原创 request to https://registry.npm.taobao.org/vue-loader failed, reason: certificate has expired
今天在安装vue项目的依赖时,使用npm命令报错了,说是原来设置的源镜像网站的证书过期了。如图,修改之后npm命令正常执行~
2024-01-29 15:26:27
1515
1
原创 消除Intellij IDEA的Not annotated parameter overrides @NonNullApi parameter警告
只需要在convert()方法的参数上添加@NonNull注解即可(注意:是org.springframework.lang.NonNull,不要导入错了)这是一个Spring的转换器,在重写Converter的convert()方法时,idea给这个方法增加了警告提示。强迫症看了直呼受不了,那么怎么样消除这个警告呢?如图,已经没有黄色的警告了~
2024-01-19 17:27:40
2683
原创 easyui渲染隐藏域<input type=“hidden“ />为textbox可作为分割条使用
最近在修改前端代码的时候,偶然发现使用javascript代码渲染的方式将渲染为textbox时,会显示一个神奇的效果,这个textbox输入框并不会隐藏,而是显示未一个细条,博主发现非常适合用来当分割条使用。于是页面变成了这样,我还寻思这条红色的线哪来的。于是,他就成了我项目中的统一分隔条了~
2024-01-18 14:59:58
1273
原创 分享一个基于easyui前端框架开发的后台管理系统模板
这是对本系统的一些简单的功能介绍。前面已经对这个系统做了一些简单的介绍,接下来介绍一下博主经过多次实践产出的一部分公共的Java代码,可以直接使用。
2024-01-18 04:10:25
3606
原创 在Flyway执行数据库脚本之前创建数据库
Flyway让我们不用手动执行sql脚本,但是众所周知,前提是要先创建项目的数据库。为了能够让运维的同事再偷一次懒,通过代码来自动完成数据库的创建,于是有了这篇文章的分享~
2024-01-06 15:08:39
1082
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人