<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[adminstritor的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/adminstritor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; adminstritor]]></copyright><item><title><![CDATA[Redis Sentinel模式]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137992610</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137992610</guid><author>adminstritor</author><pubDate>Sat, 20 Apr 2024 10:20:31 +0800</pubDate><description><![CDATA[首先来看为什么会存在哨兵模式？Redis哨兵主要是为了解决主从复制模式下单节点故障，需要手动选举主节点问题。而使用Redis Sentinel模式可以达到节点自动选举节点故障转移和节点配置更新，从而保证可靠性。]]></description><category></category></item><item><title><![CDATA[Java实现分片上传与断点续传]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137981914</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137981914</guid><author>adminstritor</author><pubDate>Sat, 20 Apr 2024 10:12:26 +0800</pubDate><description><![CDATA[通过Java实现分片上传与断点续传]]></description><category></category></item><item><title><![CDATA[Ouath2和OSS区别及联系]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137975478</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137975478</guid><author>adminstritor</author><pubDate>Fri, 19 Apr 2024 19:36:03 +0800</pubDate><description><![CDATA[开放授权(Open Authorization, Oauth)是一种用户授权第三方服务来控制访问另一个站点服务资源的协议。在整个授权过程中，第三方应用都无法触及到用户的密码就可以取得资源访问资源。目前Oauth 1.0版本基本因安全问题已基本不使用，后续介绍皆以Oauth 2.0版本为准。oauth2能解决的问题：在用户不给客户端提供账号密码情况下，让第三方应用获取用户数据和基本信息难题。Client 客户端：第三方应用程序，用户需要进行访问的平台。]]></description><category></category></item><item><title><![CDATA[LeetCode 347.前K个高频元素]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137863512</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137863512</guid><author>adminstritor</author><pubDate>Wed, 17 Apr 2024 10:55:43 +0800</pubDate><description><![CDATA[题目链接： 347.前K个高频元素① 求K个高频元素，首先统计素及对应出现次数，这里使用Map来统计。
② 声明小顶堆，遍历Map。需要维护堆大小，如果堆元素数量>k，则将顶元素跳出。]]></description><category></category></item><item><title><![CDATA[Spring自定义注解+AOP实现接口防重复提交]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137847417</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137847417</guid><author>adminstritor</author><pubDate>Wed, 17 Apr 2024 01:43:44 +0800</pubDate><description><![CDATA[有时因为网络问题导致用户多次提交表单，后端会出现重复脏数据，所以做表单防重复提交很有必要。目标：前端通过防抖， 后端通过Spring AOP + Redis实现防重幂等功能。接口幂等性跟并发请求是两个概念，接口幂等性是针对自身，而并发请求是代表不同人。目标：在指定窗口时间内，限制同一个用户对同一种业务提交相同数据。]]></description><category></category></item><item><title><![CDATA[JDK8 Lambda基本使用]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137721606</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137721606</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 20:05:43 +0800</pubDate><description><![CDATA[stream是java8中新概念，是用来处理集合、数组查找，筛选和排序等操作。stream可以执行非常复杂的查询，过滤和映射数据等操作。不是数据结构，不能存储数据stream不会改变原数据，会将操作结果保存在另一个对象中stream是惰性计算，意思是说只有当前流执行了终止操作符后才会执行。]]></description><category></category></item><item><title><![CDATA[Jackson序列化问题：Cannot deserialize instance of `java.util.ArrayList_java.lang.Object]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137720331</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137720331</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 17:25:56 +0800</pubDate><description><![CDATA[导致后续Feign Decode解码器序列化失败了。由此可知，是JSON序列化出现问题了。：OpenFeign跨服务调用查询相关信息, 在返回List时发现出现序列化异常。**分析：**看到序列化失败，首先需要清楚数据返回结果以及接收参数DTO是怎样的！3.利用反射获取属性类型，分情况进行赋值。实体类分明定义的是list，却序列化成。通过swagger调用，返回结果如下。2.找到Jackson配置。]]></description><category></category></item><item><title><![CDATA[MybatisPlus使用多字段处理器List带来的问题及对应解决方案]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719976</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719976</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 17:16:12 +0800</pubDate><description><![CDATA[多个字段使用Mybatis字段处理器带来的问题及对应解决方案]]></description><category></category></item><item><title><![CDATA[SpringSecurity多认证体系实现]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719855</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719855</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 17:13:38 +0800</pubDate><description><![CDATA[springsecurity已经为我们实现了账户密码登录认证逻辑，我们可仿照其原理来实现自定义认证这里以企业微信号登录为例，实现SpringSecurity多认证体系在多认证体系下，对不同登录方式需要用到不同的处理器去处理该请求，所以需要针对不同的请求来进行自定义过滤// 处理微信登录请求@Override});// 校验合法请求// 企业微信扫码后, 企业微信回调的code。]]></description><category></category></item><item><title><![CDATA[EasyPoi生成Excel，WPS能打开而Office打不开。]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719736</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719736</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 17:10:29 +0800</pubDate><description><![CDATA[xls为office 03版本以下生成的扩展名, xlsx为07版本的扩展名，正常来说03版本的是无法打开xlsx文件的。因为office是使用utf-8编码的，打开gbk编码的文件会出现异常，而wps对此类进行了兼容处理。easypoi默认使用HSSF导出，所以在导出xlsx时，需将导出版本类型设置为。虽然假设1，2均成立，但导出的文件都需要经过修复才可正常打开，默认为gbk编码，需要设置为utf-8。2.默认导出模板文件，可通过easypoi的workbook导出或不对xlsx，xls文件进行打包。]]></description><category></category></item><item><title><![CDATA[EasyExcel + Validation实现bean校验]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719553</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719553</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 17:06:32 +0800</pubDate><description><![CDATA[业务中可能存在多种导入需求，我们可以创建一个通用listener，就不用一个导入excel需求就创建一个独立的listener了。的invoke方法来进行逐行读取的, 所以我们可自定义listener来重写Invoke方法，将bean校验逻辑放入即可。Easyexcel是通过。1.通用listener。2.Bean校验工具类。]]></description><category></category></item><item><title><![CDATA[LeetCode 155.最小栈]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719099</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719099</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 16:50:45 +0800</pubDate><description><![CDATA[由题意可知，在不影响弹栈顺序的情况下，计算当前栈内最小值。所以我们可以引用多元组的方式在入栈的时候不断记录当前栈内的最小值即可。2.1）多元组的方式实现。2.2）链表方式实现。]]></description><category></category></item><item><title><![CDATA[LeetCode 739. 每日温度]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137719042</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137719042</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 16:48:05 +0800</pubDate><description><![CDATA[首先声明一个新数组result, 并声明一个单调递增栈(这里找第一个比当前栈顶元素大的，所以使用递增栈)。这里可以使用双指针思路，代码较为简单这里不进行阐述。除了双指针外，还可以使用单调栈的思想。]]></description><category></category></item><item><title><![CDATA[LeetCode 84. 柱状图中最大的矩形]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137718951</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137718951</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 16:46:01 +0800</pubDate><description><![CDATA[边缘两端也需要进行计算面积，可以声明一个新的数组，左右边界高度为0。遍历数组时，对于元素可分为如下三种情况进行讨论。找到比上一个元素高度低的索引位置，不断进行计算构成矩形的面积，取最大值。这里由于找的是第一个低的位置，所以这里使用单调递减栈（栈顶元素最大，栈底元素最小）。]]></description><category></category></item><item><title><![CDATA[LeetCode 215. 数组中的第K个最大元素]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137717224</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137717224</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 15:49:42 +0800</pubDate><description><![CDATA[2）当前堆元素个数 = k，且当前元素 > 堆顶元素，则移除堆顶元素，再加入堆中。需要找到第K个最大的元素，这里我们可以使用大顶堆的思路，堆内只维护k个元素。1）当前堆元素个数 < k，且当前元素 > 堆顶元素，则直接进入堆中。3）遍历完数组，第K个最大元素就是大顶堆堆底元素。]]></description><category></category></item><item><title><![CDATA[LeetCode 1222.可以攻击国王的皇后]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137687760</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137687760</guid><author>adminstritor</author><pubDate>Sat, 13 Apr 2024 10:50:28 +0800</pubDate><description><![CDATA[将国王位置的八个方向进行遍历，当遇到皇后时截断该线路。]]></description><category></category></item><item><title><![CDATA[LeetCode 74.搜索二维矩阵]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137687520</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137687520</guid><author>adminstritor</author><pubDate>Fri, 12 Apr 2024 17:02:53 +0800</pubDate><description><![CDATA[因为每行是有序的，所以可以使用二分查找。而每列的数据也是有序的，所以这里我们也可以使用二分查找。这里我们可以使用两次二分查找解决该问题，先通过二分法查出target所在行， 再通过二分法查找target对应的行内位置。由题可知，整个数组从上至下，从左至右都是有序的。所以这里我们可以使用二分查找法。通过遍历每行，对行内数据进行二分查找。]]></description><category></category></item><item><title><![CDATA[LeetCode 33.搜索旋转排序数组]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137687265</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137687265</guid><author>adminstritor</author><pubDate>Fri, 12 Apr 2024 16:57:52 +0800</pubDate><description><![CDATA[升序数组按照某个位置进行了旋转拆分成了两个升序数组。通过二分法不断找到中间位置的数，然后升序的区间快速切掉多余的部分。]]></description><category></category></item><item><title><![CDATA[LeetCode 153.寻找旋转排序数组的最小值]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137687054</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137687054</guid><author>adminstritor</author><pubDate>Fri, 12 Apr 2024 16:54:41 +0800</pubDate><description><![CDATA[这里用二分法查找，需要始终将目标值（这里是最小值）套住，并不断收缩左边界或右边界。而右]]></description><category></category></item><item><title><![CDATA[LeetCode 51.N皇后]]></title><link>https://blog.youkuaiyun.com/adminstritor/article/details/137685637</link><guid>https://blog.youkuaiyun.com/adminstritor/article/details/137685637</guid><author>adminstritor</author><pubDate>Fri, 12 Apr 2024 16:49:54 +0800</pubDate><description><![CDATA[这里需要遍历的深度即是棋盘的行数，每层遍历的长度即是棋盘的列数。所以我们从行数开始遍历，进行放置皇后（需要满足垂直，斜对角不能存在皇后）如果不满足则进行回溯。N皇后问题是一道典型的回溯思想题，知题意，对于N*N的网格中找出满足条件的皇后布局。]]></description><category></category></item></channel></rss>