- 博客(305)
- 资源 (3)
- 收藏
- 关注
原创 旧项目Spring中MQTT的推送与断线重连
本文内容为记录在旧项目Spring中对于MQTT的使用(作为消息推送方),MQTT服务端可以使用EMQX、RabbitMQ等,对于怎么部署这里不做过多赘述。
2024-10-31 15:24:48 118
原创 Spring tomcat老项目使用SseEmitter无法建立连接问题解决
在网上搜SSE、SseEmitter,都只是写着如何使用,没有说配置相关的。把连接接口直接复制,放到SpringBoot中,直接请求就连接成功。Spring和SpringMVC的版本是4.2.4.RELEASE,JDK为1.7,tomcat为7.0.90。发起请求后,后端正常返回SseEmitter无报错,但前端却一直连接不上(使用Apifox进行测试)。重启后,DeferredResult可以成功连接了,换成SseEmitter也可以重新连接了。到这里,才知道web.xml里没开启对异步的支持。
2024-06-24 15:01:59 693
原创 SpringBoot实体类的枚举属性处理
本篇文章围绕SpringBoot实体类枚举属性的序列化和反序列化处理,@RequestParam和@RequestBody对入参的接收响应,字段值通过MybatisPlus保存到数据库等几个方面。
2024-04-23 14:13:30 1905
原创 Redis知识点整理
内容包含基本类型、跳表、过期字典、删除策略、事务、持久化、穿透/击穿/雪崩问题、读写策略、RDB/AOF持久化、主从、单/多哨兵、Cluster集群、性能优化等多个方面。
2024-02-15 15:02:17 930
原创 MySQL的索引、EXPLAIN、日志文件学习笔记
创建的索引就叫做二级索引,因为MySQL会默认对主键创建主键索引,所以二级索引也无需和主键索引组成联合索引。二级索引的B+树上,每个节点的key存储的是索引列上的值,非叶子节点无value,叶子节点保存主键值。因为索引是以页作为单位进行存储的,如果数据都在同页上那么只需要回表一次,通过主键索引叶子节点的连接就能找到所有数据。索引的B+树上,每个节点的key存储的都为主键值,非叶子节点无value,叶子节点保存所有字段数据,即。B*树:在B+树的变形,在B+树的基础上非叶子节点增加指向兄弟节点的指针。
2024-02-10 14:45:46 950
原创 JVM知识点整理
线程私有(生命周期与线程一致):- 程序计数器:线程中记录代码执行顺序、当前位置、下一步执行的位置。(线程私有)- 虚拟机栈(先进后出):记录方法的调用顺序,每调用一个方法都会生成一个栈帧压入栈中,执行结束后弹出。栈帧中记录方法的信息(局部变量表、操作数栈、动态链接、方法返回地址)。如果调用方法过多超过栈的深度则会抛出StackOverFlowError。- 本地方法栈(先进后出):和虚拟机栈所发挥的作用非常相似,区别是:虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟
2024-02-05 22:49:23 743
原创 ThreadLocal学习笔记
每个Thread里,都有一个 ThreadLocal.ThreadLocalMap threadLocals变量,在ThreadLocal进行set时会创建对应的ThreadLocalMap保存到当前线程的threadLocals变量中。ThreadLocal为key,set的值为value,保存到ThreadLocalMap中。ThreadLocalMap是一个散列表数组,没有链表和红黑树,所以哈希冲突时会偏移保存到数组空位置上。
2024-02-04 15:25:50 923
原创 IDEA-SpringBoot项目Debug启动不了(卡住不动)的原因
SpringBoot项目启动原因有很多种,这里只列举其中一种,也是最近遇到的一种SpringBoot启动失败的情况,如果有相同情况的,可以看看是否是这个原因。
2023-03-08 19:42:59 4582 2
原创 LambdaQueryWrapper使用 group分组、sum聚合函数 进行统计,并分页排序
首先,我们要知道,其实LambdaQueryWrapper是无法使用sum聚合函数的,因为LambdaQueryWrapper的select()方法无法传入字符串,但你有张良计,我有过墙梯,我们其实可以迂回来做。
2022-09-16 14:12:36 48797 19
原创 mybatisplus selectOne查询,有数据,但返回为null
mybatisplus selectOne查询,有数据,但返回为null
2022-04-20 20:30:18 5968 2
原创 【GitLab】在IDEA中回滚主分支
关于如何用IDEA对于GitLab的项目主分支回滚,这是工作中遇到的问题,记录下来,也方便自己后面查看操作步骤,也方便各位遇到这个问题,不至于卡太久。
2021-09-22 12:50:48 1491
原创 [Can‘t update] xxx in xxx has no tracked branch解决办法
[Can't update] xxx in xxx has no tracked branch解决办法
2021-08-12 16:36:16 1224
原创 关于使用LayUIAdmin请求携带Token,以及使用table.render请求携带Token(LayUI踩坑篇七)
众所周知,前后端分离的项目,我们的登录接口验证完登录信息后,会生成token,并和用户id一起组成key-value的形式保存到redis中,然后会返回token。使用LayUI登录后,它会把返回的token自动保存到浏览器的Local Storage中,具体看下图。
2021-07-02 10:42:47 6847
原创 关于使用LayUIAdmin富文本上传图片时,上传成功但是报错的解决办法(LayUI踩坑篇六)
如果你把LayUI的成功码改为200,那么,富文本上传时,就会出现,明明上传成功,服务器上也有上传的图片,但是就是提示上传失败的问题。
2021-07-01 17:03:46 1437 1
原创 关于LayUIAdminPro使用table.render分页时,另外调用接口查询数据的数量的方法(LayUI踩坑篇四)
如果我们的项目中,查询数量需要另外调用的接口时,例如,我们项目中使用到find来查询数据,count方法来查询数量。那么,我们需要在table.render中再而外的发起一次请求来查询数量的总数。
2021-07-01 16:14:02 1839
原创 关于LayUIAdminPro使用table.render时,报错成功码应为0的解决办法(LayUI踩坑篇二)
在使用当我们的成功码和LayUI的成功码不一致时,会出现下图这种错误。下面是一个table.render请求,这样去请求的话,会报上图这种错误。table.render({ elem: '#LAY-stream-user-manage', url: 'http://localhost:8001/api/user/find', method: "post", contentType: "application/json;charset=UTF-8", dataTy
2021-07-01 16:06:30 803
原创 关于LayUIAdminPro请求成功码为0,需要成功码为200的办法(LayUI踩坑篇一)
文中的LayUIAdminPro版本为v2020.4.1。使用的软件是IDEA,你问我为什么不用vsCode?卑微后端仔为了方便,就使用IDEA。把状态码从0改为200,只需要修改src/config.js文件的response的ok属性,把0改为200即可。...
2021-07-01 15:40:29 644
原创 关于LayUIAdminPro请求错误时,需要修改错误内容的办法(LayUI踩坑篇五)
使用LayUI时,如果请求错误,提示的内容不够详细,修改提示的错误信息。
2021-07-01 15:15:54 1339
原创 关于LayUIAdminPro使用table.render分页时,需要修改分页携带的参数的办法(LayUI踩坑篇三)
我们使用LayUI时的table.reder()获取数据时,LayUI分页携带的是page和limit,我们需要修改js文件,让请求携带的是我们需要的分页对象。
2021-07-01 14:32:48 3521
原创 SpringMVC笔记
文章目录SpringMVC的执行流程环境配置RestFul风格转发与重定向接收请求参数数据回显乱码JSONJson乱码解决Ajax拦截器SpringMVC比较简单,所以笔记可能会比较潦草。SpringMVC的核心:前端控制器(DispatcherServlet)SpringMVC核心三要素:处理器映射器(BeanNameUrlHandlerMapping)、处理器适配器(SimpleControllerHandlerAdapter)、视图解析器(InternalResourceViewResolv
2020-11-24 13:18:31 419
原创 Mybatis学习笔记
文章目录搭建环境CRUD#{} 与 ${} 的区别Map模糊查询核心配置引入配置文件(properties)设置(settings)别名(typeAliases)数据库环境(environments)映射器(mappers)生命周期和作用域解决数据库和Java实体类属性名不一致的问题日志limit分页注解开发resultMap处理多对一按照查询嵌套处理按照结果嵌套处理resultMap处理一对多一对多,多对一小结动态SQLIFchoose、when、otherwisewheretrimsetforeachS
2020-11-24 13:01:21 612
原创 【LeetCode】283. 移动零(Java)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution { public void moveZeroes(int[] nums) { int len = nums.length; if (nums == null || len < 2) return; // 记录0的个数,不是0的
2020-11-19 11:47:58 196
原创 【LeetCode】1122. 数组的相对排序(Java)
给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。提示:arr1.length, arr2.length <= 10000 <= arr1[i], arr2[i] <= 1000arr2 中的元素 arr2[i] 各不相同arr2 中的每个元素 arr2[
2020-11-14 12:05:20 309
原创 【LeetCode】127. 单词接龙(Java)
给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。这道题没思路,看了weiwei哥的题解学会的,这道题用到bfs+回溯,
2020-11-05 16:41:17 310
原创 【LeetCode】941. 有效的山脉数组(Java)
给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[I]A[i] > A[i+1] > … > A[A.length - 1]提示:0 <= A.length <= 1000
2020-11-03 20:01:14 234
原创 【LeetCode】349. 两个数组的交集(Java)
给定两个数组,编写一个函数来计算它们的交集。说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。解法一setclass Solution { public int[] intersection(int[] nums1, int[] nums2) { // set Set<Integer> set = new HashSet<>(); // 对nums1数组进行排序 Arrays.
2020-11-02 13:40:43 517
原创 Spring5学习笔记(六、注解编程)
文章目录注解开发的好处注解的作用Spring注解的发展历程Spring注解开发的一个问题Spring的基础注解(Spring2.x)对象创建的相关注解1. @Component2. @Scope3. @Lasy4. 生命周期方法的相关注解@PostConstruct@PreDestroy注入的相关注解@Autowired、@Qualifier与@Resouce@Value@PropertySource注解扫描详解1. 排除方式2. 包含方式对于注解开发的思考Spring的高级注解(Spring3.x及以上)
2020-10-31 20:34:52 364 4
原创 【LeetCode】381. O(1) 时间插入、删除和获取随机元素 - 允许重复(Java)
设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。class RandomizedCollection { private List<Integer> list; // 保存所有存储的数 priva
2020-10-31 11:46:40 94
原创 【LeetCode】463. 岛屿的周长(Java)
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。解法一迭代,最容易想到的解法。class Solution { public int islandPerime
2020-10-30 15:31:45 388
原创 【LeetCode】129. 求根到叶子节点数字之和(Java)
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;
2020-10-29 10:48:05 239
原创 【LeetCode】1207. 独一无二的出现次数(Java)
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。提示:1 <= arr.length <= 1000-1000 <= arr[i] <= 1000解法一自己写的,当时没想到用set,现在自己看自己的解法都感觉丢人,见笑了。class Solution { public boolean uniqueOccurrences(int[] arr) { Map&
2020-10-28 10:52:08 244 1
原创 Spring5学习笔记(五、MVC框架整合)
文章目录MVC框架整合思想搭建Web运行环境为什么要整合MVC框架?Spring可以整合哪些MVC框架?Spring整合MVC框架的核心思路六、注解编程MVC框架整合思想搭建Web运行环境在main包下创建java包和resources包。引入jar包 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--修改为
2020-10-25 22:18:44 273
原创 Spring5学习笔记(四、持久层整合与事务处理)
文章目录Spring与持久层Spring与MyBatis整合MyBatis开发步骤的回顾MyBatis在开发过程中存在的问题Spring与MyBatis整合思路分析五、事务处理六、MVC框架集成七、注解编程Spring与持久层Spring框架为什么要与持久层技术进行整合?JavaEE开发需要持久层进行数据库的访问操作。JDBC、Hibernate、MyBatis进行持久开发过程存在大量的代码冗余。Spring基于模板设计模式对于上述的持久层技术进行了封装。Spring可以与哪些持久层技术
2020-10-25 15:03:22 657
原创 【LeetCode】845. 数组中的最长山脉(Java)
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < … B[i-1] < B[i] > B[i+1] > … > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)给出一个整数数组 A,返回最长 “山脉” 的长度。如果不含有 “山脉” 则返回 0。提示:0 <= A.l
2020-10-25 09:04:17 283
原创 【LeetCode】234. 回文链表(Java)
解法一数组/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public boolean isPalindrome(ListNode head) { // 链表为空或者链表节点为1时,为回文链表
2020-10-24 15:37:17 304
原创 【LeetCode】1024. 视频拼接(Java)
你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数目,如果无法完成该任务,则返回 -1 。
2020-10-24 12:14:20 15909
原创 Spring5学习笔记(三、AOP开发)
文章目录静态代理设计模式为什么需要代理设计模式?问题代理设计模式概念名词解释代理开发的核心要素编码静态代理存在的问题Sring的动态代理开发Spring动态代理的概念搭建开发环境Spring动态代理的开发步骤动态代理细节分析Spring动态代理详解额外功能的详解MethodBeforeAdvice分析MethodInterceptor(方法拦截器)切入点详解切入点表达式1. 方法切入点表达式2. 类切入点表达式3. 包切入点表达式切入点函数切入点函数的逻辑运算AOP开发AOP的概念AOP的开发步骤切面的名词
2020-10-22 17:06:04 708 1
原创 【LeetCode】925. 长按键入(Java)
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。提示:name.length <= 1000typed.length <= 1000name 和 typed 的字符都是小写字母。class Solution { public boolean isLongPressedName(Str
2020-10-21 09:47:43 213 2
VisualGC.zip
2020-07-28
jconsole.nbm
2020-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人