<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FrankCai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ddsof_Cai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ddsof_Cai]]></copyright><item><title><![CDATA[1024程序员节快乐]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/153837615</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/153837615</guid><author>Ddsof_Cai</author><pubDate>Fri, 24 Oct 2025 18:25:42 +0800</pubDate><description><![CDATA[1024程序员节快乐。]]></description><category></category></item><item><title><![CDATA[1024程序员节]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/143216690</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/143216690</guid><author>Ddsof_Cai</author><pubDate>Thu, 24 Oct 2024 18:45:55 +0800</pubDate><description><![CDATA[1024程序员节。]]></description><category></category></item><item><title><![CDATA[技术交流：Node Sass does not yet support your current environment: Windows 64-bit然如何解决]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/123177024</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/123177024</guid><author>Ddsof_Cai</author><pubDate>Mon, 28 Feb 2022 10:39:59 +0800</pubDate><description><![CDATA[Node Sass does not yet support your current environment: Windows 64-bit然如何解决,cnpm此问题解决方法
node sass不支持当前环境，所以可以直接删掉原来不支持本机的node sass，再重新安装。
NPM
删除：
npm uninstall --save node-sass
安装：
npm install --save node-sass
CNPM
删除：
cnpm uninstall --save node-sass
安装
c]]></description><category></category></item><item><title><![CDATA[技术交流：综合利用CacheBuilder和RateLimiter进行限流控制]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121142933</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121142933</guid><author>Ddsof_Cai</author><pubDate>Thu, 04 Nov 2021 15:19:23 +0800</pubDate><description><![CDATA[综合利用CacheBuilder和RateLimiter进行限流控制需求解决方案LimiterRateLimiterAspect注解使用
需求
系统拦截白名单下有部分接口是公开的，便于外部查询数据，这些接口均需要传输accessKey作为访问钥匙，如下有三种适用场景：

没有传输该参数值可第一时间打回；
创建错误的accessKey校验直接打回；
传输正确的accessKey，查询账号相关信息，然后进行查询操作；

细分思路，最终将上述三种场景划分为：

没有传输该参数值可第一时间打回；
创建错误的acce]]></description><category></category></item><item><title><![CDATA[技术交流：springboot优雅获取自定义yml文件内容值]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121142510</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121142510</guid><author>Ddsof_Cai</author><pubDate>Thu, 04 Nov 2021 14:59:27 +0800</pubDate><description><![CDATA[springboot优雅获取自定义yml文件内容值@PropertySource@Value示例代码
@PropertySource
功能：@PropertySource注解用于指定资源文件读取的位置，它不仅能读取properties文件，也能读取xml文件，并且通过YAML解析器，配合自定义PropertySourceFactory实现解析YAML文件。
源码：
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documente]]></description><category></category></item><item><title><![CDATA[技术交流：springboot配置阿里云日志服务与log4j2 lookup]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121124387</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121124387</guid><author>Ddsof_Cai</author><pubDate>Wed, 03 Nov 2021 16:42:04 +0800</pubDate><description><![CDATA[阿里云日志服务与log4j lookup配置springboot阿里云日志服务配置application.yml配置log4j.xml配置springboot启动程序
阿里云日志服务
文档：https://help.aliyun.com/product/28958.html
材料准备：project、logstore、accessKeyId、accessKeySecret、endpoint
配置application.yml
将准备好的accessKeyId、accessKeySecret配置到applic]]></description><category></category></item><item><title><![CDATA[技术交流：springboot获取yml文件并配置系统环境]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121117698</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121117698</guid><author>Ddsof_Cai</author><pubDate>Wed, 03 Nov 2021 11:46:09 +0800</pubDate><description><![CDATA[springboot获取yml文件并配置系统环境前景需求加载yml设置系统环境变量示例代码
前景需求
通过加载yml文件的内容并设置为系统变量，在xml文件中引入该变量，而不是在xml文件直接赋值，便于在yml进行统一管理。如果需要保证敏感内容不容易曝光，可对重要内容进行加解密。
加载yml
Spring Framework 提供了两个方式获取yml内容：YamlMapFactoryBean和YamlPropertiesFactoryBean
两者的区别是返回的结果对象不同，两者各有优劣势，根据实际生产需要]]></description><category></category></item><item><title><![CDATA[技术交流：jasypt加密配置文件敏感内容]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121097628</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/121097628</guid><author>Ddsof_Cai</author><pubDate>Tue, 02 Nov 2021 12:15:46 +0800</pubDate><description><![CDATA[目前，主流采用jasypt和druid对配置文件进行加密，由于后者的操作内容较为繁琐，所以推荐采用jasypt来加密配置文件的敏感内容。
操作步骤

在pom.xml加入依赖

    &lt;dependency&gt;
      &lt;groupId&gt;com.github.ulisesbocchio&lt;/groupId&gt;
      &lt;artifactId&gt;jasypt-spring-boot-starter&lt;/artifactId&gt;
      &lt;ve]]></description><category></category></item><item><title><![CDATA[工具人：IDEA中带有@路径Ctrl+鼠标左键跳转设置]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/120987974</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/120987974</guid><author>Ddsof_Cai</author><pubDate>Wed, 27 Oct 2021 10:40:25 +0800</pubDate><description><![CDATA[IDEA中带有@路径Ctrl+鼠标左键跳转设置
快捷键： ctrl+鼠标左键
功能： 1.支持以@开头的文件路径跳转；2.输入文件路径提示
实现操作：


找到项目的配置文件。如：config.js

可以看出@被解析为src


IDEA设置
File  =&gt; settings  =&gt;Languages &amp; Frameworks =&gt; JavaScript =&gt; Webpack

填写上述的配置文件


成功



...]]></description><category></category></item><item><title><![CDATA[技术交流：一语道破Springboot使用@Valid失效的原因]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/119111405</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/119111405</guid><author>Ddsof_Cai</author><pubDate>Mon, 26 Jul 2021 16:08:19 +0800</pubDate><description><![CDATA[网上查阅了半天，基本什么原因都排查过了。网上解决方案千奇百怪，最终最终，让我一语道破@Valid失效的原因吧。文末！！文末！！文末！！
网上的解决方案：
1.方案一

2. 方案二

3. 方案三

4. 方案四
@Valid和@RequestBody的位置问题
各种奇葩解决方案！！
我的问题解决方案：
查看springboot版本，虽然内置了validation，但超过2.2.0的话，要手动导入validation依赖，@Valid才不会失效。原因不知！


...]]></description><category></category></item><item><title><![CDATA[技术交流：深入浅出TCP滑动窗口、拥塞窗口（慢开始，拥塞控制，快重传，快恢复）的过程和思想]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/114700262</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/114700262</guid><author>Ddsof_Cai</author><pubDate>Fri, 12 Mar 2021 17:37:41 +0800</pubDate><description><![CDATA[为什么要有滑动窗口？
首先，TCP是全双工协议，意味着会话双方可以同时接收和发送数据，其中会话双方都各自维护一个发送和接收窗口，各自的接收窗口取决于应用、系统、硬件的限制，发送窗口则要求取决于对端通告的接收窗口，要求两者相同。可以想象一下，如果发送端发送数据过快超过接收端的数据处理速率，这就意味着接收端会产生数据溢出的情况。为了避免这种情况，所以才出现滑动窗口来解决流量控制的问题。
滑动窗口的机制

发送窗口只有接收到发送窗口内字节的确认ACK，才会移动发送窗口的左边界；
接收窗口只有在前面所有的数据段都确]]></description><category></category></item><item><title><![CDATA[技术交流：分布式缓存的原理及应用]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/112851395</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/112851395</guid><author>Ddsof_Cai</author><pubDate>Tue, 19 Jan 2021 23:18:44 +0800</pubDate><description><![CDATA[分布式缓存的原理及应用
缓存（进程级缓存与分布式缓存）
缓存指将需要频繁访问的数据存放在内存中以加快用户访问速度的一种技术。缓存分进程级缓存和分布式缓存，进程级缓存指将数据缓存在服务内部，通过Map、List等结构实现缓存；分布式缓存指将数据单独存放在分布式系统中，以便于缓存的统一管理和存取。常用的分布式缓存系统有Ehcache、Redis和Memcached。
分布式缓存
对于传统单点的web系统一般使用进程式缓存即可，而在微服务架构下往往需要一个分布式缓存来实现跨服务的缓存系统。
如图所示，用户访问的数]]></description><category></category></item><item><title><![CDATA[技术交流：网络与负载均衡]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/112500812</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/112500812</guid><author>Ddsof_Cai</author><pubDate>Wed, 13 Jan 2021 22:53:45 +0800</pubDate><description><![CDATA[OSI七层网络模型
网路的七层架构从下到上主要分为：物理层，数据链路层，网络层，传输层，会话层，表示层，应用层。


物理层：主要定义物理设备标准，主要作用是传输比特流，具体做法是在发送端将0/1码转化为电流的强弱来进行传输，在接收端再转化为0/1码，也就是常说的数模转化，模数转换，这一层的数据叫做比特。


数据链路层：主要用于对数据包中的MAC地址进行解析和封装。这一层的数据叫做帧。在这一层工作的设备主要有网卡、网桥、交换机。


网络层：主要用于对数据表中的IP地址进行封装和解析，这一层的数据叫做数据]]></description><category></category></item><item><title><![CDATA[技术交流：Python编写tb抢购脚本，文末源码]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/110918327</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/110918327</guid><author>Ddsof_Cai</author><pubDate>Wed, 09 Dec 2020 11:22:33 +0800</pubDate><description><![CDATA[Python编写抢购脚本警示准备步骤导包安装chromedriver测试过程设置抢购模式和抢购时间进入目录，运行脚本，登录时间一到自动提交订单手动输入密码GitHub地址
警示
源码用于技术交流，切勿传播，责任自负。
源码用于技术交流，切勿传播，责任自负。
源码用于技术交流，切勿传播，责任自负。
准备

Windows 系统
Python 环境
Chrome 浏览器
编程基础，要看懂源码

步骤
导包

import time
import datetime
from selenium import web]]></description><category></category></item><item><title><![CDATA[技术交流：对于大流量的网站，如何解决访问量的问题]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/110842144</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/110842144</guid><author>Ddsof_Cai</author><pubDate>Mon, 07 Dec 2020 21:16:57 +0800</pubDate><description><![CDATA[大流量的网站如何解决访问量的问题?
当一个网站发展为知名网站的时候（如新浪，腾讯，网易，雅虎），网站的访问量通常都会非常大，如果使用虚拟主机的话，网站就会因为访问量过大而引起 服务器性能问题，这是很多人的烦恼，有人使用取消RSS等错误的方法来解决问题，显然是下错药
对于当今大流量的网站，每天几千万甚至上亿的流量,是如何解决访问量问题的呢?以下是一些总结的方法:


第一，确认服务器硬件是否足够支持当前的流量。
普通的P4服务器一般最多能支持每天10万独立IP，如果访问量比这个还要大，那么必须首先配置一台更高]]></description><category></category></item><item><title><![CDATA[学习笔记： Java基础+集合+多线程+JVM]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/109690685</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/109690685</guid><author>Ddsof_Cai</author><pubDate>Sat, 14 Nov 2020 14:45:23 +0800</pubDate><description><![CDATA[目录Java基础面向对象和面向过程的区别Java语言的特点JVM，JDK，JRE的概念Java和C++的区别什么是Java程序的主类，应用程序和小程序的主类有什么不同？Java应用程序与小程序之间有哪些差别字符型常量和字符串常量的区别Java的反射机制构造器Constructor是否可被override重写重载和重写String，StringBuffer和StringBuilder的区别是什么？String为什么是不可变的？自动装箱与拆箱在一个静态方法内调用一个非静态成员为什么是非法的？在Java中定义一个]]></description><category></category></item><item><title><![CDATA[技术交流：接元宝小游戏（JQ转JS并解决游戏过程问题）]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/107091733</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/107091733</guid><author>Ddsof_Cai</author><pubDate>Sat, 04 Jul 2020 09:31:51 +0800</pubDate><description><![CDATA[今天接了小副业，要求很简单，将源码中的JQ转为JS来实现游戏的整个过程
解决游戏中的两个问题：

元宝有时不下落
没有被财神接到的元宝没落到底就消失
[可选项]有调整财神的移动速度，元宝下落速度和出现频次，添加元宝横向的移动等，以便有更好的控制感和可玩性。

JQ和JS源码都打包在我的Git，有需要自取：DdsofCai的GitHub
游戏界面：

JQ源码：
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;接元宝小游戏&lt;/title&gt;
&lt;style&gt;
]]></description><category></category></item><item><title><![CDATA[技术交流：(Python)对新闻的爬取]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/107042980</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/107042980</guid><author>Ddsof_Cai</author><pubDate>Tue, 30 Jun 2020 15:13:05 +0800</pubDate><description><![CDATA[今天接了一个python小脚本，发来一起分享。
要求：

废话不说，直接上代码：
import os
import requests
from lxml import etree
from bs4 import BeautifulSoup
import re
import urllib.request

# 获取源码
def getHTML(url):
    a = urllib.request.urlopen(url)  # 打开指定网址
    html = a.read()  # 读取网页源码
  ]]></description><category></category></item><item><title><![CDATA[技术交流：关于XML文件小红点问题的四种解决方案]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/105716556</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/105716556</guid><author>Ddsof_Cai</author><pubDate>Thu, 23 Apr 2020 20:53:01 +0800</pubDate><description><![CDATA[关于XML文件小红点问题
每次遇到类似
Referenced file contains errors(http://www.springframework.org/schema/context/spring-context-4.3.xsd). For more information, right click on the message in the Problems View and sel...]]></description><category></category></item><item><title><![CDATA[技术交流：(Python)CMD窗口下简单实现修改文件后缀]]></title><link>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/104751668</link><guid>https://blog.youkuaiyun.com/Ddsof_Cai/article/details/104751668</guid><author>Ddsof_Cai</author><pubDate>Mon, 09 Mar 2020 14:20:59 +0800</pubDate><description><![CDATA[介绍
之前做Django小项目留下来的脚本，因为后期维护发现需要修改大量的文件后缀，所以利用python语言简单实现了。
步骤
使用：python change.py {dir} [原后缀] [目标后缀]

修改后缀前:

运行:

修改后缀后:

代码:

import os,sys

def change(path,source,target):
    count=0
    for roo...]]></description><category></category></item></channel></rss>