<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程序员小辰的代码小窝]]></title><description><![CDATA[不要停，现在的优势会很快消失]]></description><link>https://blog.youkuaiyun.com/Frank_Adam</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Frank_Adam]]></copyright><item><title><![CDATA[java正则表达式匹配url]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/144717014</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/144717014</guid><author>Frank_Adam</author><pubDate>Wed, 25 Dec 2024 12:47:56 +0800</pubDate><description><![CDATA[【代码】java正则表达式匹配url。]]></description><category></category></item><item><title><![CDATA[从整个SecurityFilterChain的角度，一个请求经过Spring Security的流程]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/144447489</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/144447489</guid><author>Frank_Adam</author><pubDate>Fri, 13 Dec 2024 13:16:28 +0800</pubDate><description><![CDATA[从整个SecurityFilterChain的角度，一个请求经过Spring Security的流程]]></description><category></category></item><item><title><![CDATA[Spring Security OAuth2内置的服务提供者]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/144426761</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/144426761</guid><author>Frank_Adam</author><pubDate>Thu, 12 Dec 2024 15:00:08 +0800</pubDate><description><![CDATA[Spring Security 5.7.5版本，接入OAuth2登录后需要在配置文件中进行相关配置。如果是框架内置的服务提供者，则配置文件中只需要配置client-id, client-secret即可。org.springframework.security.config.oauth2.client.CommonOAuth2Provider类中。org.springframework.security:spring-security-config依赖包下的。，成功接入了GitHub，欢迎访问。]]></description><category></category></item><item><title><![CDATA[Spring Security-记住我的实现原理]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/144324031</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/144324031</guid><author>Frank_Adam</author><pubDate>Sun, 08 Dec 2024 12:15:22 +0800</pubDate><description><![CDATA[Spring Security 5.7.5记住我的实现原理]]></description><category></category></item><item><title><![CDATA[Spring MVC Controller返回json日期格式配置失效的解决办法]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/141285748</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/141285748</guid><author>Frank_Adam</author><pubDate>Sat, 17 Aug 2024 20:06:25 +0800</pubDate><description><![CDATA[RequestMappingHandlerAdapter（位置在WebMvcConfigurationSupport类中），其中setMessageConverters方法会覆盖掉我们配置的jackson converter，因此问题的解决从Spring容器中获取RequestMappingHandlerAdapter这个bean，然后找到内部的MappingJackson2HttpMessageConverter，以代码的方式重新配置即可。标签会自动注册。]]></description><category></category></item><item><title><![CDATA[Idea使用Maven下载源码]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/141256140</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/141256140</guid><author>Frank_Adam</author><pubDate>Fri, 16 Aug 2024 12:02:40 +0800</pubDate><description><![CDATA[如题，Idea中使用Maven下载源码提示Cannot download sources for 'xxx'。原因是在对应的镜像站没有找到源码包。笔者尝试下载spring-web-4.3.0.RELEASE的源码包时提示如此，原因可能是配置的阿里云镜像站没有上传对应的源码包，配置了华为镜像站后就可以下载源码了。]]></description><category></category></item><item><title><![CDATA[Idea启动Tomcat控制台中文乱码]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/141217156</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/141217156</guid><author>Frank_Adam</author><pubDate>Thu, 15 Aug 2024 11:09:38 +0800</pubDate><description><![CDATA[网上搜索资料会发现有要改server.xml URIEncoding=UTF-8的，有要改idea文件夹下idea64.exe.vmoptions添加-Dfile.encoding=UTF-8的，有要在idea里Tomcat配置中VM Options指定-Dfile.encoding=UTF-8的。Idea配置Tomcat后启动，控制台显示中文乱码。]]></description><category></category></item><item><title><![CDATA[Idea安装vim插件快捷键冲突的解决办法]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/141212605</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/141212605</guid><author>Frank_Adam</author><pubDate>Thu, 15 Aug 2024 09:58:05 +0800</pubDate><description><![CDATA[Idea安装vim插件后，Ctrl-A, Ctrl-C等快捷键会与vim冲突，找不到设置的话只能等冲突的时候右下角弹窗设置，一旦错过了就没法更改，很难受。真正的设置页面在Setting-Vim Emulation，把有冲突的快捷键改为IDE即可。]]></description><category></category></item><item><title><![CDATA[计算机网络中常用的命令]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/136451909</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/136451909</guid><author>Frank_Adam</author><pubDate>Mon, 04 Mar 2024 14:40:54 +0800</pubDate><description><![CDATA[计算机网络中常用的命令]]></description><category></category></item><item><title><![CDATA[网络——DHCP服务器、DNS服务器实验]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/136379769</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/136379769</guid><author>Frank_Adam</author><pubDate>Thu, 29 Feb 2024 20:05:46 +0800</pubDate><description><![CDATA[DHCP服务器、DNS服务器实验，通过VMWare两台虚拟机主机进行实验]]></description><category></category></item><item><title><![CDATA[RateLimiter google限流组件试析(SmoothBursty/SmoothWarmingUp)]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/113653130</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/113653130</guid><author>Frank_Adam</author><pubDate>Thu, 04 Feb 2021 16:22:47 +0800</pubDate><description><![CDATA[RateLimiter google限流组件试析(SmoothBursty)

RateLimiter是guava包里的限流组件，位于com.google.common.util.concurrent.RateLimiter包下。
RateLimiter的使用：
RateLimiter limiter = RateLimiter.create(8);
在需要限流的地方只需：limiter.acquire();

看一下相关源码
首先是创建过程
RateLimiter.create(8)对应的构造方法是Rat]]></description><category></category></item><item><title><![CDATA[【算法】面试题 16.16. 部分排序]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/112987514</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/112987514</guid><author>Frank_Adam</author><pubDate>Fri, 22 Jan 2021 16:09:57 +0800</pubDate><description><![CDATA[【算法】面试题 16.16. 部分排序

给定一个整数数组，编写一个函数，找出索引m和n，只要将索引区间[m,n]的元素排好序，整个数组就是有序的。注意：n-m尽量最小，也就是说，找出符合条件的最短序列。函数返回值为[m,n]，若不存在这样的m和n（例如整个数组是有序的），请返回[-1,-1]。
示例：
输入： [1,2,4,7,10,11,7,12,6,7,16,18,19]
输出： [3,9]
提示：
0 &lt;= len(array) &lt;= 1000000
【解法】如果存在这样的m和n，则数组]]></description><category></category></item><item><title><![CDATA[【算法】将单链表的每K个节点之间逆序]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/112254963</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/112254963</guid><author>Frank_Adam</author><pubDate>Tue, 05 Jan 2021 23:09:19 +0800</pubDate><description><![CDATA[【算法】将单链表的每K个节点之间逆序

头条的一道面试题，折磨死我了，为了下次不再被折磨贴一下……
将单链表的每K个节点之间逆序
限定语言：C、Python、C++、Javascript、Python 3、Java、Go
给定一个单链表，实现一个调整单链表的函数，使得每 K 个节点之间的值逆序，如果最后不够 K 个节点一组，则不调整最后几个节点。
示例1
输入
[1,2,3,4,5],3

输出
{3,2,1,4,5}

思路
我的想法比较朴素，用一个节点从头到尾遍历链表，并计数，每k个数字执行一次逆序操作]]></description><category></category></item><item><title><![CDATA[MyBatis查询的意外问题 ＜if＞标签 ==和=的区别]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/111660740</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/111660740</guid><author>Frank_Adam</author><pubDate>Fri, 25 Dec 2020 09:16:16 +0800</pubDate><description><![CDATA[MyBatis查询的意外问题
使用MyBatis的注解写sql，像往常一样加入条件查询，如下：
"&lt;if test=\"type!=null and type!=2\"&gt; and (show_position=#{type,jdbcType=TINYINT} or show_position=2)&lt;/if&gt;",
"&lt;if test=\"type!=null and type=1\"&gt; ORDER BY seq ASC&lt;/if&gt;",

代码里注入参数，type是]]></description><category></category></item><item><title><![CDATA[Redis Cluster分布式集群搭建]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/110687440</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/110687440</guid><author>Frank_Adam</author><pubDate>Sat, 05 Dec 2020 15:06:11 +0800</pubDate><description><![CDATA[Redis Cluster分布式集群搭建


下载和准备工作
# download and compile
wget https://download.redis.io/releases/redis-4.0.10.tar.gz
tar zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make
# prepare environment
mkdir redis_essential
cp redis-4.0.10/src/redis-cli redis_essential/
c]]></description><category></category></item><item><title><![CDATA[【计算机网络】TCP的运输连接管理（三次握手、四次挥手）]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/108912604</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/108912604</guid><author>Frank_Adam</author><pubDate>Sat, 03 Oct 2020 19:35:46 +0800</pubDate><description><![CDATA[TCP的运输连接管理
TCP是面向连接的协议，TCP运输连接的建立和释放是每次数据传输必不可少的过程。因此面向连接的通信有三个阶段：连接建立、数据传输、连接释放。
1. TCP的连接建立
TCP连接建立过程要解决三个问题：

使每一方能够确认对方的存在。
允许双方协商一些参数（如最大窗口值，是否使用窗口扩大选项等）。
能够对运输实体资源（如缓存大小、连接表等）进行分配。

TCP连接的建立采用客户-服务器方式，由客户端主动发起连接建立，服务器被动接收连接建立请求。（好像也存在同时主动发起连接建立的情况）
T]]></description><category></category></item><item><title><![CDATA[【计算机网络】TCP可靠传输的原理]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/108904283</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/108904283</guid><author>Frank_Adam</author><pubDate>Fri, 02 Oct 2020 20:14:38 +0800</pubDate><description><![CDATA[计算机网络之TCP可靠传输
一、可靠传输的工作原理
由于计算机网络是分层的，TCP发送的报文段是交给网络层的IP协议处理的。但是IP只能提供"最大努力服务"，也就是说下层的网络提供的是不可靠传输，因此TCP必须采取一些措施保证可靠传输。
当传输过程中分组出现差错（检验和）时，应当让发送方重新传送分组；当网络状况不好或者接收方来不及接收分组时，应当适当降低发送速率（流量控制和拥塞控制）。
1.1 停止等待协议
简单的停止等待协议，即发送方每发送一个分组就等待确认，收到接收方的确认后在发送下一个分组。


当传]]></description><category></category></item><item><title><![CDATA[【LeetCode.10 正则表达式匹配】]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/108459677</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/108459677</guid><author>Frank_Adam</author><pubDate>Tue, 08 Sep 2020 00:26:21 +0800</pubDate><description><![CDATA[【LeetCode.10 正则表达式匹配】


10. 正则表达式匹配
给你一个字符串 s 和一个字符规律 p，请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
'.' 匹配任意单个字符
'*' 匹配零个或多个前面的那一个元素

所谓匹配，是要涵盖 整个 字符串 s的，而不是部分字符串。
说明:

s 可能为空，且只包含从 a-z 的小写字母。
p 可能为空，且只包含从 a-z 的小写字母，以及字符 . 和 *。

【分析】这道题曾经困扰了我好久……直到今天看到力扣官方题解有点思路，记录一下。这道]]></description><category></category></item><item><title><![CDATA[【计算机网络】DNS域名系统]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/108305009</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/108305009</guid><author>Frank_Adam</author><pubDate>Sun, 30 Aug 2020 12:24:07 +0800</pubDate><description><![CDATA[DNS域名系统

域名系统（Domain Name System, DNS）是互联网使用的命名系统，用来把熟知的域名转换为IP地址。
DNS被设计为一个联机分布式数据库系统，DNs使大多数解析都在本地进行，仅有少量的解析请求需要通过互联网通信，因此DNS的效率很高。同时因为DNS是分布式的，即使单个计算机出现故障，也不会影响DNS系统的整体运行。
当某一个应用进程需要解析主机名时，就调用相应的解析程序，并成为DNS的一个客户。把带解析的域名放在DNS请求报文中，以UDP数据包的方式发送给本地域名服务器（节省]]></description><category></category></item><item><title><![CDATA[【计算机网络】socket机制]]></title><link>https://blog.youkuaiyun.com/Frank_Adam/article/details/108304963</link><guid>https://blog.youkuaiyun.com/Frank_Adam/article/details/108304963</guid><author>Frank_Adam</author><pubDate>Sun, 30 Aug 2020 12:18:35 +0800</pubDate><description><![CDATA[Socket机制


系统调用(system call)：通过用户进程和操作系统控制权的切换，向操作系统请求服务。
应用编程接口(Application Programming Interface, API)：从程序设计角度定义的许多标准系统调用函数。
套接字(Socket): Berkley Unix操作系统定义的API，用来使用TCP/IP协议的功能。也称作套接字接口。微软的Windows操作系统采用了套接字接口API，进行修改，称之为WinSock(WIndows Socket)。
计算机之间的通信就]]></description><category></category></item></channel></rss>