CodingDiary
代码日记
2022-11-16T14:50:46.264Z
https://xkcoding.com/
xkcoding
Hexo
解决 MacOS BigSur JD-GUI 打开失败的问题
https://xkcoding.com/2022/01/04/fix-error-about-jd-gui-on-big-sur.html
2022-01-04T12:48:04.000Z
2022-11-16T14:50:46.264Z
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<p>JD-GUI 是一款轻量级的 Java 反编译工具,对于一些没有源码的 Jar 包,直接拖进去就可以反编译源码,十分的方便。</p>
<p>在 MacOS 还是 Mojave 的时候,JD-GUI 使用一切正常。</p>
<p>当系统升级到 BigSur 和 Monterey 的时候,打开 JD-GUI 就会提示找不到 JDK 环境。(即使你的电脑已经存在 JDK 环境并且配置了环境变量,依然会提示找不到 JDK 环境)</p>
<p>大致错误提示如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">ERROR launching 'JD-GUI'</span><br><span class="line"></span><br><span class="line">No suitable Java version found on your system!</span><br><span class="line">This program requires Java 1.8+</span><br><span class="line">Make sure you install the required Java version.</span><br></pre></td></tr></table></figure>
《Flink入门与实战》之读书笔记
https://xkcoding.com/2021/05/06/reading-notes-about-flinkrumenyushizhan.html
2021-05-06T02:02:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="总体评价"><a class="header-anchor" href="#总体评价"></a>总体评价</h2>
<blockquote>
<ul>
<li>阅读状态:已读</li>
<li>阅读时间:2021/04/16 - 2021/05/06</li>
<li>个人评价:<strong>一般</strong></li>
</ul>
</blockquote>
<p>本书前几个章节更像是官方文档的导读,中间几个章节粗略的介绍了一下 Flink 高阶 API 的使用,但考虑到 Flink 版本更新较快,因此最好还是根据文档学习 API,最后一章通过两个 demo 程序帮助更好的理解 Flink 的使用场景,重要的是学习如何在实际工作场景中去使用 Flink 解决实际问题。 如果沉得下心看官方文档,还是推荐看官方文档。反之,本书也不失为一本 Flink 的入门首选。</p>
愉快的本地开发体验之本地DNS
https://xkcoding.com/2021/05/01/happy-dev-run-local-dns-server.html
2021-05-01T02:42:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="写在前面"><a class="header-anchor" href="#写在前面"></a>写在前面</h2>
<p>大家在本地环境进行联调或者运行一些服务的时候,是不是经常通过 <code>ip:port</code> 进行测试。有时候服务一多,经常性的需要记住很多 <code>ip:port</code> 信息。</p>
<p>本文将介绍如何通过自定义域名的方式去替换 <code>ip:port</code>,减去我们的记忆负担,提升我们的开发体验。</p>
当 Lombok 遇见了 MapStruct の「坑」
https://xkcoding.com/2021/04/22/when-lombok-met-mapstruct.html
2021-04-22T06:01:21.000Z
2022-11-16T14:50:46.264Z
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<p>2021 年了,相信搞 Java 的小伙伴们不会还没有人没用过 Lombok 吧?</p>
<p>Lombok 是一款通过「<code>注解</code>」的形式简化并消除冗余代码的 Java 插件,利用「<code>Annotation Processor</code>」原理,在编译时生成一些「重复」代码。另外需要注意的是,在 IDEA 环境下,需要额外安装一个 Lombok 插件。(本文不会专门介绍 Lombok 的使用方法,想要深入学习的小伙伴可以去 <a href="https://projectlombok.org/features/all" target="_blank" rel="noopener">官方文档</a> 学习 Lombok 提供的所有注解的使用方法。)</p>
<p>可能一些朋友对 MapStruct 就有点陌生了,但是我敢肯定的是,你们一定用过和他功能类似的工具。比如 Apache Commons BeanUtils、Spring BeanUtils、BeanCopier、Dozer 等等。没错,MapStruct 也是为了解决对象属性拷贝这一个通用需求的。传统使用「<code>反射</code>」进行属性拷贝的方式,在大数据量的场景下,性能低下,效率堪忧。MapStruct 底层则是通过 <code>getter/setter</code> 的方式提升属性拷贝的性能的,跟 Lombok 一样利用「<code>Annotation Processor</code>」的原理,在编译时生成代码。</p>
《小时候真傻,居然盼着长大》之读书笔记
https://xkcoding.com/2021/04/15/reading-notes-about-xiaoshihouzhensha-juranpanzhezhangda.html
2021-04-15T02:02:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="总体评价"><a class="header-anchor" href="#总体评价"></a>总体评价</h2>
<blockquote>
<ul>
<li>阅读状态:已读</li>
<li>阅读时间:2021/03/18 - 2021/04/15</li>
<li>个人评价:<strong>推荐</strong></li>
</ul>
</blockquote>
<p>小时候,无忧无虑,傻傻的盼着长大;<br>
长大了,各有各的难处,成年人的世界哪有容易二字;<br>
往事如风,只能用回忆纪念;</p>
<p>你来人间一趟,你要看看太阳;你若爱生活哪里都可爱。</p>
使用 docker 快速启动本地 ZooKeeper 集群
https://xkcoding.com/2021/04/14/run-local-zookeeper-cluster-with-docker.html
2021-04-14T08:03:53.000Z
2022-11-16T14:50:46.264Z
<p><img src="https://static.xkcoding.com/blog/run-local-zookeeper-cluster-with-docker/%E4%BD%BF%E7%94%A8%20docker%20%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8%E6%9C%AC%E5%9C%B0%20zookeeper%20%E9%9B%86%E7%BE%A4.jpg" alt="文章配图"></p>
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<p>ZooKeeper ,翻译过来就是:动物园管理员,而这也是它 logo 的由来。它是一个为分布式应用提供一致性服务的软件,是大数据场景下的一个重要的基础组件。所以安装 ZooKeeper,也是入门学习大数据的第一步。</p>
<p>曾几何时,我们在学习大数据技术的时候,总是先在本地环境启动虚拟机应用,然后开始初始化虚拟机配置和环境,紧接着开始安装软件。此时如果需要模拟一些集群环境,还需要进行大量重复的苦不堪言的配置工作。</p>
<p>今天我们便利用 Docker 来快速的在本地启动一个 ZooKeeper 环境。</p>
《史蒂夫·乔布斯传》之读书笔记
https://xkcoding.com/2021/03/16/reading-notes-about-shidifuqiaobusizhuan.html
2021-03-16T02:02:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="总体评价"><a class="header-anchor" href="#总体评价"></a>总体评价</h2>
<blockquote>
<ul>
<li>阅读状态:暂停 😭</li>
<li>阅读时间:2021/03/06 - 2021/03/16(暂停)</li>
</ul>
</blockquote>
如何在本地快速启动一个 K8S 集群
https://xkcoding.com/2021/03/15/run-local-k8s-cluster-quickly.html
2021-03-15T09:44:47.000Z
2022-11-16T14:50:46.264Z
<p><img src="https://static.xkcoding.com/blog/run-local-k8s-cluster-quickly/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9C%AC%E5%9C%B0%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AA%20K8S%20%E9%9B%86%E7%BE%A4.jpg" alt="文章配图"></p>
<h2 id="背景"><a class="header-anchor" href="#背景"></a>背景</h2>
<p>最近在阅读<a href="https://reading.xkcoding.com/posts/%E6%AF%8F%E5%A4%A95%E5%88%86%E9%92%9F%E7%8E%A9%E8%BD%ACkubernetes/" target="_blank" rel="noopener">《每天5分钟玩转Kubernetes》</a> 这本书,个人感觉是一本不错的 K8S 的入门书籍。</p>
<p>我们在刚开始学习一项技术的时候,不论是通过官方文档、书籍,亦或是视频的形式,如果仅仅是去看,而不去练习实践的话,那么是很难将其真正应用起来的。</p>
<p>然而当我开始准备实践的时候,发现要想在本地将 K8S 跑起来,并不像我们想象的那么容易。存在以下几点「问题」:</p>
<ul>
<li>网络环境:K8S 里面的一些镜像在国内很难将其 pull 下来,当然这可以通过代理、镜像站等方式解决。</li>
<li>资源消耗:在内存资源不这么充裕的本地开发环境,去部署一个 K8S 集群,这无疑不是一个明智的选择。</li>
</ul>
<p>那么有没有什么方案可以更优雅更轻量更快速搭建一个 K8S 集群呢?答案就是 <code>k3d</code>。</p>
解决 MacOS BigSur 使用 pip 安装依赖失败的问题
https://xkcoding.com/2021/03/10/fix-error-about-python-package-install-on-big-sur.html
2021-03-10T11:23:16.000Z
2022-11-16T14:50:46.264Z
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<p>年后到现在,我已经被基金伤透了心🤕</p>
<p>于是乎,为了争取不做 <code>韭零后</code>,我打算学习一下关于量化交易方面的内容。</p>
<p>学习量化交易,首先得先拿到交易的数据,这里我使用的是 <a href="https://www.joinquant.com/help/api/help#JQData:%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8JQData" target="_blank" rel="noopener">聚宽数据</a> 提供的本地数据接口,官方提供了 Python SDK,所以我就开始照着文档安装 SDK ……</p>
《每天5分钟玩转Kubernetes》之读书笔记
https://xkcoding.com/2021/03/06/reading-notes-about-meitian5fenzhongwanzhuankubernetes.html
2021-03-06T02:02:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="总体评价"><a class="header-anchor" href="#总体评价"></a>总体评价</h2>
<blockquote>
<ul>
<li>阅读状态:已读</li>
<li>阅读时间:2021/02/27 - 2021/03/06</li>
<li>个人评价:<strong>一般</strong></li>
</ul>
</blockquote>
<p>本书前十二章内容适合刚接触 K8S 的小白做入门学习,后面几章内容略显仓促收尾。作为一本 K8S 的入门书籍,还是不错的。</p>
<p>小白学习,一定要记得练习。</p>
《富爸爸穷爸爸》之读书笔记
https://xkcoding.com/2021/02/24/reading-notes-about-fubabaqiongbaba.html
2021-02-24T02:02:11.000Z
2022-11-16T14:50:46.264Z
<h2 id="总体评价"><a class="header-anchor" href="#总体评价"></a>总体评价</h2>
<blockquote>
<ul>
<li>阅读状态:已读</li>
<li>阅读时间:2021/02/04 - 2021/02/24</li>
<li>个人评价:<strong>推荐</strong></li>
</ul>
</blockquote>
<p>本书整体还是比较<code>推荐</code>阅读的,对于理财小白来说,本书最大的意义就是在于给我们建立一个财商的观念。</p>
<p>有很多观点对于毫无理财观念的小白来说,有点耳目一新的感觉。</p>
2020.Q4&年度总结
https://xkcoding.com/2021/01/18/Q4-2020-and-year-summary.html
2021-01-18T09:05:00.000Z
2022-11-16T14:50:46.264Z
<blockquote class="blockquote-center">我们都在用力的活着</blockquote>
快速运行一个你自己的「一言」程序
https://xkcoding.com/2020/11/02/quick-run-you-own-yiyan.html
2020-11-02T15:21:53.000Z
2022-11-16T14:50:46.264Z
<h2 id="intro">前言</h2>
<blockquote>
<p>动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。<br>
简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。</p>
<p style="text-align:right;">——选自「一言」简介</p>
</blockquote>
如何在 Spring 环境下优雅的实现策略模式
https://xkcoding.com/2020/10/11/how-to-use-strategy-design-pattern-in-spring.html
2020-10-11T01:13:29.000Z
2022-11-16T14:50:46.264Z
<h2 id="背景"><a class="header-anchor" href="#背景"></a>背景</h2>
<p>最近在忙一个需求,大致就是给满足特定条件的用户发营销邮件,但是用户的来源有很多方式:从 ES 查询的、从 csv 导入的、从 MongoDB 查询…… 需求很简单,但是怎么写的优雅,方便后续扩展,就存在很多门道了。</p>
<p>我们的项目是基于 Spring Boot 开发的,因此这篇文章也会基于 Spring Boot 作为基础框架,教你如何使用 Spring 依赖注入的特性,优雅的实现策略模式。</p>
2020.Q2&Q3总结
https://xkcoding.com/2020/09/30/Q2-Q3-2020.html
2020-09-30T22:14:48.000Z
2022-11-16T14:50:46.264Z
<p>今天国庆节,那就祝大家不加班的不要堵车,加班的不要出生产事故。😏</p>
<p>转眼,今年仅剩下百天不到啦。高能预警,灵魂发问环节。各位今年的计划完成的咋样?是超期完成还是又一次偷偷摸摸改成了明年计划?行动起来,今年说不准还有机会的。</p>
周末的不务正业~
https://xkcoding.com/2020/09/13/what-i-like-to-do-0.html
2020-09-13T07:09:22.000Z
2022-11-16T14:50:46.264Z
<p>周末的不务正业~</p>
<p>花了一个半小时折的燕子</p>
justauth-spring-boot-starter 1.3.4.beta 发布
https://xkcoding.com/2020/08/31/justauth-spring-boot-starter-publish-1.3.4.beta.html
2020-08-31T14:51:25.000Z
2022-11-16T14:50:46.264Z
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<p>好久不见,鸽了那么久,我回来了。Q2&Q3 发生了挺多事情,等后面总结的时候再详细说说。今天给大家带来的是 <code>justauth-spring-boot-starter</code> 的 <code>1.3.4.beta</code> 新版本的一些新特性。废话不多说,走起 ~</p>
悼念外公
https://xkcoding.com/2020/07/28/mourning-grandpa.html
2020-07-28T04:56:47.000Z
2022-11-16T14:50:46.264Z
<p>终究是没能熬过这个庚子年。</p>
spring-boot-demo 配套视频教程
https://xkcoding.com/2020/06/28/video-tutorial-of-spring-boot-demo.html
2020-06-28T04:36:38.000Z
2022-11-16T14:50:46.264Z
<h2 id="spring-boot-demo"><a class="header-anchor" href="#spring-boot-demo"></a>spring-boot-demo</h2>
<p>项目地址:<a href="https://github.com/xkcoding/spring-boot-demo" target="_blank" rel="noopener">https://github.com/xkcoding/spring-boot-demo</a></p>
<p><code>spring boot demo</code> 是一个用来深度学习并实战 <code>spring boot</code> 的项目,目前总共包含 <strong><code>66</code></strong> 个集成demo,已经完成 <strong><code>54</code></strong> 个。</p>
<p>现在,配套视频正式来袭~</p>
如何解决 Quartz Job 中无法注入 Spring Bean
https://xkcoding.com/2020/06/05/fix-quartz-job-cannot-autowired-spring-beans.html
2020-06-05T02:51:50.000Z
2022-11-16T14:50:46.264Z
<h2 id="1-问题"><a class="header-anchor" href="#1-问题"></a>1. 问题</h2>
<p>不知道小伙伴们在 Spring 集成 Quartz 的时候有没有遇到过这样一个问题,就是在 Quartz 的 Job 中 <code>@Autowired</code> 一个 Spring Bean 的时候会报空指针异常。如果在 Spring 中无法使用 <code>@Autowired</code> 进行注入一个 Bean 的话,这无疑是一个噩耗,那么遇到这个问题,该如何解决呢?</p>