<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FatalFlower的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/FatalFlower</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; FatalFlower]]></copyright><item><title><![CDATA[Implementation of JAXB-API has not been found on module path or classpath]]></title><link>https://blog.csdn.net/FatalFlower/article/details/130444607</link><guid>https://blog.csdn.net/FatalFlower/article/details/130444607</guid><author>FatalFlower</author><pubDate>Sat, 29 Apr 2023 22:41:27 +0800</pubDate><description><![CDATA[这是因为 JDK 8 中的一部分 Java EE 类自 JDK 9 开始便已经被废弃，在这里出现的问题为。在将部分 Spring Cloud 相关的项目从 JDK 8 迁移到 JDK 11 的过程中，使用。]]></description><category></category></item><item><title><![CDATA[MyBatis 使用—反射工厂]]></title><link>https://blog.csdn.net/FatalFlower/article/details/128478203</link><guid>https://blog.csdn.net/FatalFlower/article/details/128478203</guid><author>FatalFlower</author><pubDate>Thu, 29 Dec 2022 10:58:21 +0800</pubDate><description><![CDATA[为了能够使得方法名能够对应特定的属性，我们需要自己进行相关参数值的获取，结合上文提到的对于 Getter 方法的处理，我们可以从这个角度入手，替换掉获取属性值的默认行为。内置的反射工具类存储对应的方法，在获取时通过 Getter 规则匹配对应的方法，最后通过反射的方式调用对应的 Getter 方法获取属性。这是因为 Spring 的配置属性为字符串类型，而我们需要的是实际的对象，并且在 Spring 中不存在这样的转换关系，因此出现了这样的问题。中的相关属性，那么可以在 Spring 的配置文件（以。]]></description><category></category></item><item><title><![CDATA[ssh 无法加载新创建的私钥的问题]]></title><link>https://blog.csdn.net/FatalFlower/article/details/124052207</link><guid>https://blog.csdn.net/FatalFlower/article/details/124052207</guid><author>FatalFlower</author><pubDate>Fri, 08 Apr 2022 22:22:59 +0800</pubDate><description><![CDATA[ssh 无法加载新创建的私钥的问题
在一个新的系统上使用一个 ssh 来连接 Github 的过程中，通过 ssh-keygen 来生成对应的密钥对：
# 如果是 windows 的话，需要进入 c\user\.ssh，因为 c:\user 对应 Unix 文件目录的 ~ 目录
cd ~/.ssh &amp;&amp; ssh-keygen

按照命令输入对应的密钥的文件名，输入密码，会在当前的目录下生成两个文件：一个是 xxx.pub，这个是密钥的公钥；另一个是 xxx，为私钥。
当需要使用 ssh 来访]]></description><category></category></item><item><title><![CDATA[Spring 整合 Shiro 的过程中出现的问题（一）]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122748700</link><guid>https://blog.csdn.net/FatalFlower/article/details/122748700</guid><author>FatalFlower</author><pubDate>Sat, 29 Jan 2022 22:49:03 +0800</pubDate><description><![CDATA[Spring 整合 Shiro 的过程中出现的问题（一）
Spring 版本：由 Spring Boot 整合，版本为 2.6.2
Shiro 版本：1.8.0

问题描述
当通过自定义 ShiroFilterChainDefinition Bean来过滤相关的请求时，定义的配置类内容如下所示：
package org.xhliu.demo.config;

import org.apache.shiro.spring.config.ShiroAnnotationProcessorConfiguration]]></description><category></category></item><item><title><![CDATA[Spring Junit 使用时无法注入 Bean 的问题]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122661289</link><guid>https://blog.csdn.net/FatalFlower/article/details/122661289</guid><author>FatalFlower</author><pubDate>Mon, 24 Jan 2022 09:31:32 +0800</pubDate><description><![CDATA[Spring Junit 使用时无法注入 Bean 的问题
在使用 Junit 4 时，使用如下的测试方式来注入 DataSource Bean ：
import org.junit.Test;
import org.junit.Before;
import org.apache.shiro.realm.jdbc.JdbcRealm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframewo]]></description><category></category></item><item><title><![CDATA[Spring JPA could not initialize proxy - no Session]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122644731</link><guid>https://blog.csdn.net/FatalFlower/article/details/122644731</guid><author>FatalFlower</author><pubDate>Sat, 22 Jan 2022 22:06:00 +0800</pubDate><description><![CDATA[Spring JPA  could not initialize proxy - no Session
JPA 通过谓词分析的方式来快速地实现数据库访问相关的操作，优点是提高了开发速度，但是如果遇到问题，排查起来会很麻烦

本次遇到的问题如下图所示：
Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy [org.xhliu.demo.entity.CustomerIn]]></description><category></category></item><item><title><![CDATA[JPA 在多模块中无法找到对应的 Bean]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122635391</link><guid>https://blog.csdn.net/FatalFlower/article/details/122635391</guid><author>FatalFlower</author><pubDate>Sat, 22 Jan 2022 12:02:33 +0800</pubDate><description><![CDATA[Spring JPA 在多模块项目中的使用问题（一）
具体的项目结构如下图所示：

其中，score-application 层为应用层，用于定义实际的操作；score-domain 表示领域层，用于处理业务之间的关联关系；score-infrastructure 为基础设施层，实际对于数据库的访问操作在这一层实现；score-interfaces 为接口层，客户端可以直接访问的接口
此时希望在 score-infrastructure 中通过 JPA 来完成数据的实际操作，但是在当前的项目环境下，scor]]></description><category></category></item><item><title><![CDATA[Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122589921</link><guid>https://blog.csdn.net/FatalFlower/article/details/122589921</guid><author>FatalFlower</author><pubDate>Wed, 19 Jan 2022 21:21:29 +0800</pubDate><description><![CDATA[Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module @1b]]></description><category></category></item><item><title><![CDATA[Kafka 连接到远程 Broker 出现的 java.net.unknownhostexception 问题]]></title><link>https://blog.csdn.net/FatalFlower/article/details/122251080</link><guid>https://blog.csdn.net/FatalFlower/article/details/122251080</guid><author>FatalFlower</author><pubDate>Fri, 31 Dec 2021 10:43:40 +0800</pubDate><description><![CDATA[Kafka 连接到远程 Broker 出现的 java.net.unknownhostexception 问题
环境介绍： Kafka 3.0.0
在 Windows 10 上面使用 Kafka 连接阿里云的服务器主机时，出现 java.net.unknownhostexception 的异常，这个是由于缺少对应的域名解析而导致的，由于一般的远程主机都是没有注册对应的域名，因此就无法解析远程主机的主机名

为了解决这个问题，按照以下的步骤：

首先确保远程主机的端口是打开的，即使得别的主机能够访问这台主机的]]></description><category></category></item><item><title><![CDATA[Ubuntu 安装软件时出现 **The certificate is NOT trusted**]]></title><link>https://blog.csdn.net/FatalFlower/article/details/120807203</link><guid>https://blog.csdn.net/FatalFlower/article/details/120807203</guid><author>FatalFlower</author><pubDate>Sun, 17 Oct 2021 09:06:26 +0800</pubDate><description><![CDATA[Ubuntu 安装软件时出现 The certificate is NOT trusted


出现原因
由于对应的软件仓库缺少对应的认证文件，处于安全的考虑 Ubuntu 在获取这个仓库的软件时会拒绝获取这个仓库的软件
可能如下图所示：



解决方案


首先，将这个软件仓库设置为受信任的，只需在对应的仓库添加[trusted=yes]
比如，一个原有的 /etc/apt/source.list.d/***.list文件如下所示：
deb http://ppa.launchpad.net/repo_na]]></description><category></category></item><item><title><![CDATA[Git 的底层原理]]></title><link>https://blog.csdn.net/FatalFlower/article/details/120163188</link><guid>https://blog.csdn.net/FatalFlower/article/details/120163188</guid><author>FatalFlower</author><pubDate>Tue, 07 Sep 2021 17:34:47 +0800</pubDate><description><![CDATA[Git 的底层原理
前言
​	基于 Git 的使用，已经在前文有过相关的介绍，使用 Git 用作日常的开发基本上是足够的。现在，本文将详细介绍一些有关 Git 的实现原理。
底层命令与上层命令
​	一般情况下，正常使用的 Git 命令，如 git add、git checkout 等都是由 Git 封装好的上层命令，这对于一般的用户来讲是友好的。但是，有时候如果想要在底层执行一些必要的操作，这时就需要使用底层命令了。
​	早期的  Git 是 Linus 为了管理 Linux 内核的版本而设计的，当时的 G]]></description><category></category></item><item><title><![CDATA[Support for password authentication was removed on August 13, 2021]]></title><link>https://blog.csdn.net/FatalFlower/article/details/119717823</link><guid>https://blog.csdn.net/FatalFlower/article/details/119717823</guid><author>FatalFlower</author><pubDate>Sun, 15 Aug 2021 19:16:06 +0800</pubDate><description><![CDATA[Support for password authentication was removed on August 13, 2021
在使用 Git 上传将本地仓库推送到远程服务器时，出现了以下问题：
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.b]]></description><category></category></item><item><title><![CDATA[使用 PostgreSQL 实现 PageRank]]></title><link>https://blog.csdn.net/FatalFlower/article/details/119608669</link><guid>https://blog.csdn.net/FatalFlower/article/details/119608669</guid><author>FatalFlower</author><pubDate>Wed, 11 Aug 2021 15:44:33 +0800</pubDate><description><![CDATA[使用 PostgreSQL 实现 PageRank
PageRank 算法
​	作为 Google 最早的一个网页排名算法，该算法在早期的搜索引擎中是搜索结果最为准确的，同时也是 Google 发家的一个重要算法。尽管这些年来该算法不再是 Google 对于网页排名的唯一算法，但是它的核心思想还是值得我们去研究一下的。
​	算法简单描述：首先假定每个网页被引用的概率是相同的，然后通过计算每个网页被其它网页链接的权值进行进一步的概率计算，得到每个页面被引用的概率，再乘上对应的修正因子以及加上最小的概率，最后按]]></description><category></category></item><item><title><![CDATA[Git 的基本使用]]></title><link>https://blog.csdn.net/FatalFlower/article/details/119545067</link><guid>https://blog.csdn.net/FatalFlower/article/details/119545067</guid><author>FatalFlower</author><pubDate>Mon, 09 Aug 2021 19:22:52 +0800</pubDate><description><![CDATA[Git 的基本使用
什么是 Git
​	在使用 Git 前，了解 Git 对于之后的学习会有很大的帮助。
​	Git 是一个分布式的版本控制软件，最初的目的是为了更好的管理 Linux 内核的开发。相比较于其它的软件版本控制系统，虽然总体上用起来与它们十分的相似，但是在对于信息的存储和认知上有很大的差异。主要体现在：


直接记录每个文件的快照，而不是进行差异的比较

对于其它的软件版本控制系统，如 SVN，在每个软件版本中都是通过记录与最初文件的差异来进行版本控制的。而 Git 则不同，每个版本都是通过创]]></description><category></category></item><item><title><![CDATA[Failed to active swapfile:/swapfile]]></title><link>https://blog.csdn.net/FatalFlower/article/details/118731148</link><guid>https://blog.csdn.net/FatalFlower/article/details/118731148</guid><author>FatalFlower</author><pubDate>Wed, 14 Jul 2021 16:43:47 +0800</pubDate><description><![CDATA[Linux：Failed to active swapfile:/swapfile
  有的时候，在对 Linux 经过一同猛如虎的操作之后，发现无法启动了，然后又手贱长按电源键强制将其关机，然后再次启动的时候就无法启动了。
 &amp;emsp本次遇到的问题是在经过上述描述的步骤之后，启动系统时得到了类似下面的错误：
[Failed] Failed to active swapfile :/swapfile

 对于这个问题，查阅了相关的资料后得知，是这个 /swapfile 文件发生了混乱，导致这个文件]]></description><category></category></item><item><title><![CDATA[fatal: refusing to merge unrelated histories]]></title><link>https://blog.csdn.net/FatalFlower/article/details/118694611</link><guid>https://blog.csdn.net/FatalFlower/article/details/118694611</guid><author>FatalFlower</author><pubDate>Tue, 13 Jul 2021 10:51:33 +0800</pubDate><description><![CDATA[Git fatal: refusing to merge unrelated histories
使用 Git 拉取请求时，如果在当前本地 Git 仓库内已经提交了自己的修改，那么在使用 git pull 命令时将会拒绝合并这两次的合并。看起来像这样

这是由于两个分支都有自己的提交历史和标签，这两个标签的提交历史对于任意一方来讲都是不可比较的，因此 Git 会拒绝合并这两次提交。
解决办法
在 git pull 后添加 --allow-related-histories 选项，这个选项可以安全地合并这两个]]></description><category></category></item><item><title><![CDATA[Linux 下中断进程与恢复]]></title><link>https://blog.csdn.net/FatalFlower/article/details/118650166</link><guid>https://blog.csdn.net/FatalFlower/article/details/118650166</guid><author>FatalFlower</author><pubDate>Sun, 11 Jul 2021 08:33:19 +0800</pubDate><description><![CDATA[Linux 下中断进程与恢复
想比较于使用 ctrl + c 的方式来终止进程，有时可能使用 ctrl + z 的方式来挂起进程的方式可能更好。
# 这里以运行一个 Spring Web 应用为例
java -jar target/book_service-0.0.1-SNAPSHOT.jar

运行后，使用 ctrl + z 的方式挂起该进程，可以在该终端中暂时中断该进程。
进程恢复
在当前终端使用 jobs 命令，可以得到被挂起的进程列表

在 jobs 命令后加入 -l 选项可以得到挂起进程的 pid]]></description><category></category></item><item><title><![CDATA[Bash Shell 下重置 PATH 环境变量]]></title><link>https://blog.csdn.net/FatalFlower/article/details/117827621</link><guid>https://blog.csdn.net/FatalFlower/article/details/117827621</guid><author>FatalFlower</author><pubDate>Fri, 11 Jun 2021 22:30:02 +0800</pubDate><description><![CDATA[Bash Shell 下重置 PATH 环境变量
一般情况下，如果使用 source .bashrc 来重新加载 PATH 环境变量时将会不断地增加 PATH 的内容。比如，现在需要把 JAVA_HOME环境变量对应的 JDK-15 转变成为 JDK 1.8， 如果只是在 .basrc 文件内修改后就进行 source 命令，那么得到的 PATH 可能是这样的：

即 JAVA_HOME 环境变量最先使用的是 JDK-15，而不会首先选择 JDK1.8。当然，可以通过将 PATH 环境变量插到JAVA_HO]]></description><category></category></item><item><title><![CDATA[Android:  java.lang.SecurityException: Permission Denial: starting Intent camera]]></title><link>https://blog.csdn.net/FatalFlower/article/details/114273820</link><guid>https://blog.csdn.net/FatalFlower/article/details/114273820</guid><author>FatalFlower</author><pubDate>Fri, 21 May 2021 20:07:44 +0800</pubDate><description><![CDATA[Android:  java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.android.camera2/com.android.camera.CaptureActivity }
引言：在使用 Android 的照相功能时， 出现的权限访问异常。
解决方法：
在 AndroidManifest.xml 文件中添加以下内容：
在这里插入代码]]></description><category></category></item><item><title><![CDATA[鸡蛋掉落问题]]></title><link>https://blog.csdn.net/FatalFlower/article/details/116937768</link><guid>https://blog.csdn.net/FatalFlower/article/details/116937768</guid><author>FatalFlower</author><pubDate>Tue, 18 May 2021 14:25:12 +0800</pubDate><description><![CDATA[鸡蛋掉落问题
 假定你手上有 n 个鸡蛋，现在有一栋 k 层的建筑物。在任意一层丢下一个鸡蛋，该鸡蛋都有可能会破，如果鸡蛋破了，那么就不能够再使用它。现要求得到一个临界楼层，从该楼层丢下的鸡蛋刚好不会破，而高于该层的楼层丢下的鸡蛋都会破，求最少要丢几次鸡蛋才能得到该临界楼层。
 比如说，现在手上有1个鸡蛋，现在的建筑物一共有2层，那么至少就需要丢两次鸡蛋才能确定临界楼层。这是因为如果在第二层丢鸡蛋，如果破了那么就需要再丢一次鸡蛋才能确定临界楼层。因此至少需要丢两次鸡蛋才能确定临界楼层。
----------]]></description><category></category></item></channel></rss>