<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cmainlove的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cmainlove</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cmainlove]]></copyright><item><title><![CDATA[如何全面升级spring-boot-2.x及Spring-security-oauth2]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/125336863</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/125336863</guid><author>Cmainlove</author><pubDate>Fri, 17 Jun 2022 18:37:00 +0800</pubDate><description><![CDATA[解决CVE-2022-22978和CVE-2022-22965漏洞，全面升级spring-boot-2.x及Spring-security-oauth2]]></description><category></category></item><item><title><![CDATA[如何在不激活电脑的情况验机]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/124693694</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/124693694</guid><author>Cmainlove</author><pubDate>Tue, 10 May 2022 17:53:55 +0800</pubDate><description><![CDATA[买到一台新的电脑，想验机，但是售后明确告知，激活后不能7天无理由退货。
这里有一个常识，新买的电脑首次进去都会开始一段引导，这其中就是让你联网，只要你联网，电脑就会自动激活。这下好了，你在不知不觉中失去了7天无理由退货的权力。（是不是满满的套路？）
小编告诉你，怎么在不联网的情况下，验证机器的配置。]]></description><category></category></item><item><title><![CDATA[如何将Log4j彻底切换成logback]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/122215749</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/122215749</guid><author>Cmainlove</author><pubDate>Wed, 29 Dec 2021 15:10:24 +0800</pubDate><description><![CDATA[如何将Log4j彻底切换成logback?
之前有篇文章《彻底搞明白为什么日志框架依赖冲突了》介绍了同一项目中因为依赖了多个日志实现而导致的异常。log4j和logback都是日志实现，通常情况下，我们项目中都不会直接使用实现类，而是使用slf4j、jcl、log4j-api等日志facade。这样最大的好处就是，项目不会和某一日志框架绑定。
本篇将介绍如果把项目的日志框架切换成logback，切成其它的实现同理实现即可。
1、排除项目中所有的log4j、log4j-core相关的依赖。
这里推荐idea插]]></description><category></category></item><item><title><![CDATA[探究flink-stream如何增量的读取iceberg table]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/121266705</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/121266705</guid><author>Cmainlove</author><pubDate>Thu, 11 Nov 2021 17:10:05 +0800</pubDate><description><![CDATA[从iceberg的官方文档上可以看到如下介绍：

实例程序中设置了startSnapshotId，介绍说可以从指定的快照版本号开始读取增量的数据。那么笔者的问题来了：
flink-stream如何增量的读取iceberg table？
flink本身肯定没有增量读取iceberg的能力，这是提供框架层的方法，在源码iceberg/flink/src/main/java/org/apache/iceberg/flink/source/中找到了StreamingReaderOperator.java类，继承了f]]></description><category></category></item><item><title><![CDATA[SpringBoot工程假死，如何揪出幕后真凶的？]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/115544822</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/115544822</guid><author>Cmainlove</author><pubDate>Fri, 09 Apr 2021 11:51:37 +0800</pubDate><description><![CDATA[SpringBoot工程假死，如何揪出幕后真凶的？
工作中经常会遇到程序不响应，但是进程依然存活的现象。原因有很多，比如

内存、CPU占满了（500，连接超时）
磁盘满了（500，连接超时）
今天笔者遇到的不是前两种，原因也很稀奇，tomcat线程池耗尽了，导致500连接超时。

我们是一个spring boot工程，对外提供rest接口服务，但是隔三差五的就会出现500连接超时的现象。
排除了内存、CPU、磁盘占满的case后，有个同事无意中发现这台机器出现了大量的网络连接CLOSE_WAIT。查询资料]]></description><category></category></item><item><title><![CDATA[关于Nexus你需要掌握的知识点]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/110791429</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/110791429</guid><author>Cmainlove</author><pubDate>Mon, 07 Dec 2020 14:50:03 +0800</pubDate><description><![CDATA[前言
Jar包管理绕不开Maven, Maven的使用必定设计私服Nexus，那么Maven私服是什么，为什么我们开发Spring boot项目需要它？怎么来搭建自己的私服呢？笔者从一个实际工作遇到的问题着手，与大家分享我了解的Nexus私服小知识。
问题描述
一个沉寂了4个月CICD流水线走到Maven编译的时候，突然报错了：
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-reso]]></description><category></category></item><item><title><![CDATA[KafkaProducer调用send之后发生了啥]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/109239462</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/109239462</guid><author>Cmainlove</author><pubDate>Thu, 19 Nov 2020 11:40:36 +0800</pubDate><description><![CDATA[在使用producer.send(record)这种最简单的方式发送消息时一直没有在topic中读取到这条消息。所以我就开始按照往常一样开始debug，看执行到哪里有问题，但是神奇的是在debug的时候消息发出去了。
我诧异为什么run 和debug的结果会不一样，就这个问题看了一下网上普遍说的都是这两种模式的运行结果是一样的，不可能不一样。这时我就有了一个疑问:

run和debug在执行中的原理到底是什么?

为什么会导致我的程序两次运行结果不一样。在思考这个问题的同时，结合我的代码，我觉得问题就应该是]]></description><category></category></item><item><title><![CDATA[如何制作一个Fat Jar]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/109806065</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/109806065</guid><author>Cmainlove</author><pubDate>Thu, 19 Nov 2020 11:38:48 +0800</pubDate><description><![CDATA[笔者日常开发中遇到一个场景，需要将项目依赖的jar打包成一个jar包。下一篇文章我会告诉大家fat jar使用场景。
主要有两种方案：

借助强大的assembly工具

无需任何配置文件，直接修改pom.xml如下：
&lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
         ]]></description><category></category></item><item><title><![CDATA[Java开发环境的搭建]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/83654616</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/83654616</guid><author>Cmainlove</author><pubDate>Fri, 23 Oct 2020 11:40:57 +0800</pubDate><description><![CDATA[JDK环境变量

   JAVA_HOME=E:\Java\jdk1.7.0
   CLASSPATH= .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
   Path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
   进入CMD测试一下：java -version


Maven环境变量

 MAVEN_HOME=D:\Ja...]]></description><category></category></item><item><title><![CDATA[别被NoSuchMethodError骗了]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/107768859</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/107768859</guid><author>Cmainlove</author><pubDate>Mon, 03 Aug 2020 18:32:44 +0800</pubDate><description><![CDATA[别被NoSuchMethodError骗了NoSuchMethodError不一定方法真的不存在两个Jar包含相同的类怎么办？Jar在classpath中的顺序真的很重要吗？Linux和window环境是怎么排序jar的？结论
小编工作中尝尝被NoSuchxxx这类报错拦住，这里面最常见的莫过于NoSuchMethodError。程序所说的“No such meth”真的就是在类里面没有这个方法吗？不，100%的情况是jar包冲突了。程序只是告诉你它在当前这个jar包的类A中没有找到需要的方法，如果真的没有]]></description><category></category></item><item><title><![CDATA[彻底搞明白为什么日志框架依赖冲突了]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/106489304</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/106489304</guid><author>Cmainlove</author><pubDate>Tue, 02 Jun 2020 10:08:56 +0800</pubDate><description><![CDATA[项目启动报错如下：
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
qdc is restarting
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024M; support was removed in 8.0
SLF4J: Cl]]></description><category></category></item><item><title><![CDATA[一次排查@CacheEvict注解失效的经历]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/106137233</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/106137233</guid><author>Cmainlove</author><pubDate>Fri, 15 May 2020 11:56:26 +0800</pubDate><description><![CDATA[笔者简单看了一下《Spring实战》中的demo，然后就应用到业务代码中了，本以为如此简单的事情，竟然在代码提交后的1个周，被同事发现。selectByTaskId()方法查出来的数据总是过时的。
代码如下：
@Cacheable("taskParamsCache")
List&lt;TaskParams&gt; selectByTaskId(Long taskId);
// ...
// ...
@CacheEvict("taskParamsCache")
int deleteByTaskId(Long ]]></description><category></category></item><item><title><![CDATA[Java Web项目内存溢出问题排查]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/106002140</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/106002140</guid><author>Cmainlove</author><pubDate>Fri, 08 May 2020 18:32:07 +0800</pubDate><description><![CDATA[线上的一个spring boot项目每两个周会出现系统卡死，不能正常提供api服务，重启后恢复。经过查看日志发现大量的“java.lang.OutOfMemoryError: GC overhead limit exceeded”日志。这个异常的官方解释：

Exception in thread thread_name: java.lang.OutOfMemoryError: GC Overhead limit exceeded
Cause: The detail message “GC overhead]]></description><category></category></item><item><title><![CDATA[系统升级之Mysql数据垮库迁移]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/100576293</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/100576293</guid><author>Cmainlove</author><pubDate>Tue, 10 Mar 2020 12:46:10 +0800</pubDate><description><![CDATA[场景
系统升级时，需要将1.0的mysql数据迁移2.0，但是相关的表结构可能发生了改变，如果不使用程序，使用sql + mysql工具实现数据的迁移。

导出数据
使用mysqldump命令，将数据导出到文件：
mysqldump -u test-p -h localhost -P 3306 --complete-insert --extended-insert=FALSE --set-gti...]]></description><category></category></item><item><title><![CDATA[IDEA搭建Flutter开发环境，独立安装Android SDK]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/104687712</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/104687712</guid><author>Cmainlove</author><pubDate>Fri, 06 Mar 2020 12:36:02 +0800</pubDate><description><![CDATA[显示Android license status unknown

安装Android SDK Command-line Tools

安装Android SDK Command-line Tools后目录

找不到sdkmanager

建软连接
问题解决


]]></description><category></category></item><item><title><![CDATA[一次装系统惨痛的翻车经历]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/104218062</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/104218062</guid><author>Cmainlove</author><pubDate>Fri, 06 Mar 2020 00:24:01 +0800</pubDate><description><![CDATA[邻居家的电脑win10系统，在帮忙清理垃圾的过程中发现显卡驱动不是最新的，导致分辨率偏小的问题。笔者的强迫症就烦犯了，主动申请为其更新驱动。

安装驱动翻车
驱动更新这种活儿轻车熟路，先试用360驱动大师检测显卡驱动，发现没有可更新的资源，难不住笔者，下载驱动精灵检测，欧了！显示有可更新的显卡驱动，激动点了安装，却没想到由此埋下了坑。
这个驱动不知道什么路数，更新重启之后电脑直接花屏了，完全不能正...]]></description><category></category></item><item><title><![CDATA[更新win10显卡驱动翻车痛苦经历]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/104218230</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/104218230</guid><author>Cmainlove</author><pubDate>Sat, 08 Feb 2020 09:34:37 +0800</pubDate><description><![CDATA[邻居家的电脑win10系统，在帮忙清理垃圾的过程中发现显卡驱动不是最新的，导致分辨率偏小的问题。笔者的强迫症就烦犯了，主动申请为其更新驱动。


安装驱动翻车    驱动更新这种活儿轻车熟路，先试用360驱动大师检测显卡驱动，发现没有可更新的资源，难不住笔者，下载驱动精灵检测，欧了！显示有可更新的显卡驱动，激动点了安装，却没想到由此埋下了坑。    这个驱动不知道什么路数，更新重启之后电脑直接花屏...]]></description><category></category></item><item><title><![CDATA[记一次使用hive-jdbc+tomcat-jdbc连接(Connection)中断的处理过程]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/103683137</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/103683137</guid><author>Cmainlove</author><pubDate>Tue, 24 Dec 2019 16:44:54 +0800</pubDate><description><![CDATA[现象描述
Hive环境一个数据库，拥有表8000+，业务代码需要挨个desc {tableName}来获取表信息。当程序运行到4000+左右，开始出现获取信息失败。
查找原因
通过查看日志发现是连接已断开，具体如下：
【INFO】org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cau...]]></description><category></category></item><item><title><![CDATA[Mac搭建python开发环境]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/103144787</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/103144787</guid><author>Cmainlove</author><pubDate>Tue, 19 Nov 2019 17:32:53 +0800</pubDate><description><![CDATA[笔者是Java开发，但是经常需要写一些小工具，即写即用，如果用Java相对麻烦，起码需要如下步骤：
下载jar编写代码打包上传运行Main
Python作为脚本语言，直接可以在linux上运行，这一点使得在工具这个小场景下特别适用，因为它只需要两步：
编写代码运行
之前笔者有介绍怎么在window上搭建Python的开发环境，需要的伙伴请移步。
安装python
brew install pyth...]]></description><category></category></item><item><title><![CDATA[如何使用gitlab自带的CICD]]></title><link>https://blog.youkuaiyun.com/Cmainlove/article/details/102669183</link><guid>https://blog.youkuaiyun.com/Cmainlove/article/details/102669183</guid><author>Cmainlove</author><pubDate>Mon, 21 Oct 2019 19:09:48 +0800</pubDate><description><![CDATA[上次分享了gitlab+jenkins实现CICD，前提我们需要安装一个jenkins。其实高版本的gitlab已经具备CICD功能，笔者使用的版本是：GitLab 社区版 11.4.10
安装Runners
Settings &gt; CI/CD &gt; Runners


根据提示点击Install Gitlab Runner
下面根据你的系统选择相应的安装包，笔者以linux为例：

这里...]]></description><category></category></item></channel></rss>