自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Implementation of JAXB-API has not been found on module path or classpath

这是因为 JDK 8 中的一部分 Java EE 类自 JDK 9 开始便已经被废弃,在这里出现的问题为。在将部分 Spring Cloud 相关的项目从 JDK 8 迁移到 JDK 11 的过程中,使用。

2023-04-29 22:41:27 6558 1

原创 MyBatis 使用—反射工厂

为了能够使得方法名能够对应特定的属性,我们需要自己进行相关参数值的获取,结合上文提到的对于 Getter 方法的处理,我们可以从这个角度入手,替换掉获取属性值的默认行为。内置的反射工具类存储对应的方法,在获取时通过 Getter 规则匹配对应的方法,最后通过反射的方式调用对应的 Getter 方法获取属性。这是因为 Spring 的配置属性为字符串类型,而我们需要的是实际的对象,并且在 Spring 中不存在这样的转换关系,因此出现了这样的问题。中的相关属性,那么可以在 Spring 的配置文件(以。

2022-12-29 10:58:21 805

原创 ssh 无法加载新创建的私钥的问题

ssh 无法加载新创建的私钥的问题在一个新的系统上使用一个 ssh 来连接 Github 的过程中,通过 ssh-keygen 来生成对应的密钥对:# 如果是 windows 的话,需要进入 c\user\.ssh,因为 c:\user 对应 Unix 文件目录的 ~ 目录cd ~/.ssh && ssh-keygen按照命令输入对应的密钥的文件名,输入密码,会在当前的目录下生成两个文件:一个是 xxx.pub,这个是密钥的公钥;另一个是 xxx,为私钥。当需要使用 ssh 来访

2022-04-08 22:22:59 1939

原创 Spring 整合 Shiro 的过程中出现的问题(一)

Spring 整合 Shiro 的过程中出现的问题(一)Spring 版本:由 Spring Boot 整合,版本为 2.6.2Shiro 版本:1.8.0问题描述当通过自定义 ShiroFilterChainDefinition Bean来过滤相关的请求时,定义的配置类内容如下所示:package org.xhliu.demo.config;import org.apache.shiro.spring.config.ShiroAnnotationProcessorConfiguration

2022-01-29 22:49:03 1363

原创 Spring Junit 使用时无法注入 Bean 的问题

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

2022-01-24 09:31:32 2213

原创 Spring JPA could not initialize proxy - no Session

Spring JPA could not initialize proxy - no SessionJPA 通过谓词分析的方式来快速地实现数据库访问相关的操作,优点是提高了开发速度,但是如果遇到问题,排查起来会很麻烦本次遇到的问题如下图所示:Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy [org.xhliu.demo.entity.CustomerIn

2022-01-22 22:06:00 799

原创 JPA 在多模块中无法找到对应的 Bean

Spring JPA 在多模块项目中的使用问题(一)具体的项目结构如下图所示:其中,score-application 层为应用层,用于定义实际的操作;score-domain 表示领域层,用于处理业务之间的关联关系;score-infrastructure 为基础设施层,实际对于数据库的访问操作在这一层实现;score-interfaces 为接口层,客户端可以直接访问的接口此时希望在 score-infrastructure 中通过 JPA 来完成数据的实际操作,但是在当前的项目环境下,scor

2022-01-22 12:02:33 1201

原创 Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass

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

2022-01-19 21:21:29 45634 14

原创 Kafka 连接到远程 Broker 出现的 java.net.unknownhostexception 问题

Kafka 连接到远程 Broker 出现的 java.net.unknownhostexception 问题环境介绍: Kafka 3.0.0在 Windows 10 上面使用 Kafka 连接阿里云的服务器主机时,出现 java.net.unknownhostexception 的异常,这个是由于缺少对应的域名解析而导致的,由于一般的远程主机都是没有注册对应的域名,因此就无法解析远程主机的主机名为了解决这个问题,按照以下的步骤:首先确保远程主机的端口是打开的,即使得别的主机能够访问这台主机的

2021-12-31 10:43:40 3084

原创 Ubuntu 安装软件时出现 **The certificate is NOT trusted**

Ubuntu 安装软件时出现 The certificate is NOT trusted出现原因由于对应的软件仓库缺少对应的认证文件,处于安全的考虑 Ubuntu 在获取这个仓库的软件时会拒绝获取这个仓库的软件可能如下图所示:解决方案首先,将这个软件仓库设置为受信任的,只需在对应的仓库添加[trusted=yes]比如,一个原有的 /etc/apt/source.list.d/***.list文件如下所示:deb http://ppa.launchpad.net/repo_na

2021-10-17 09:06:26 3183

原创 Git 的底层原理

Git 的底层原理前言​ 基于 Git 的使用,已经在前文有过相关的介绍,使用 Git 用作日常的开发基本上是足够的。现在,本文将详细介绍一些有关 Git 的实现原理。底层命令与上层命令​ 一般情况下,正常使用的 Git 命令,如 git add、git checkout 等都是由 Git 封装好的上层命令,这对于一般的用户来讲是友好的。但是,有时候如果想要在底层执行一些必要的操作,这时就需要使用底层命令了。​ 早期的 Git 是 Linus 为了管理 Linux 内核的版本而设计的,当时的 G

2021-09-07 17:34:47 306

原创 Support for password authentication was removed on August 13, 2021

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

2021-08-15 19:16:06 9103 1

原创 使用 PostgreSQL 实现 PageRank

使用 PostgreSQL 实现 PageRankPageRank 算法​ 作为 Google 最早的一个网页排名算法,该算法在早期的搜索引擎中是搜索结果最为准确的,同时也是 Google 发家的一个重要算法。尽管这些年来该算法不再是 Google 对于网页排名的唯一算法,但是它的核心思想还是值得我们去研究一下的。​ 算法简单描述:首先假定每个网页被引用的概率是相同的,然后通过计算每个网页被其它网页链接的权值进行进一步的概率计算,得到每个页面被引用的概率,再乘上对应的修正因子以及加上最小的概率,最后按

2021-08-11 15:44:33 227

原创 Git 的基本使用

Git 的基本使用什么是 Git​ 在使用 Git 前,了解 Git 对于之后的学习会有很大的帮助。​ Git 是一个分布式的版本控制软件,最初的目的是为了更好的管理 Linux 内核的开发。相比较于其它的软件版本控制系统,虽然总体上用起来与它们十分的相似,但是在对于信息的存储和认知上有很大的差异。主要体现在:直接记录每个文件的快照,而不是进行差异的比较对于其它的软件版本控制系统,如 SVN,在每个软件版本中都是通过记录与最初文件的差异来进行版本控制的。而 Git 则不同,每个版本都是通过创

2021-08-09 19:22:52 159

原创 Failed to active swapfile:/swapfile

Linux:Failed to active swapfile:/swapfile  有的时候,在对 Linux 经过一同猛如虎的操作之后,发现无法启动了,然后又手贱长按电源键强制将其关机,然后再次启动的时候就无法启动了。 &emsp本次遇到的问题是在经过上述描述的步骤之后,启动系统时得到了类似下面的错误:[Failed] Failed to active swapfile :/swapfile 对于这个问题,查阅了相关的资料后得知,是这个 /swapfile 文件发生了混乱,导致这个文件

2021-07-14 16:43:47 2572 4

原创 fatal: refusing to merge unrelated histories

Git fatal: refusing to merge unrelated histories使用 Git 拉取请求时,如果在当前本地 Git 仓库内已经提交了自己的修改,那么在使用 git pull 命令时将会拒绝合并这两次的合并。看起来像这样这是由于两个分支都有自己的提交历史和标签,这两个标签的提交历史对于任意一方来讲都是不可比较的,因此 Git 会拒绝合并这两次提交。解决办法在 git pull 后添加 --allow-related-histories 选项,这个选项可以安全地合并这两个

2021-07-13 10:51:33 115

原创 Linux 下中断进程与恢复

Linux 下中断进程与恢复想比较于使用 ctrl + c 的方式来终止进程,有时可能使用 ctrl + z 的方式来挂起进程的方式可能更好。# 这里以运行一个 Spring Web 应用为例java -jar target/book_service-0.0.1-SNAPSHOT.jar运行后,使用 ctrl + z 的方式挂起该进程,可以在该终端中暂时中断该进程。进程恢复在当前终端使用 jobs 命令,可以得到被挂起的进程列表在 jobs 命令后加入 -l 选项可以得到挂起进程的 pid

2021-07-11 08:33:19 3526

原创 Bash Shell 下重置 PATH 环境变量

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

2021-06-11 22:30:02 2219

原创 Android: java.lang.SecurityException: Permission Denial: starting Intent camera

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 文件中添加以下内容:在这里插入代码

2021-05-21 20:07:44 1061

原创 鸡蛋掉落问题

鸡蛋掉落问题 假定你手上有 n 个鸡蛋,现在有一栋 k 层的建筑物。在任意一层丢下一个鸡蛋,该鸡蛋都有可能会破,如果鸡蛋破了,那么就不能够再使用它。现要求得到一个临界楼层,从该楼层丢下的鸡蛋刚好不会破,而高于该层的楼层丢下的鸡蛋都会破,求最少要丢几次鸡蛋才能得到该临界楼层。 比如说,现在手上有1个鸡蛋,现在的建筑物一共有2层,那么至少就需要丢两次鸡蛋才能确定临界楼层。这是因为如果在第二层丢鸡蛋,如果破了那么就需要再丢一次鸡蛋才能确定临界楼层。因此至少需要丢两次鸡蛋才能确定临界楼层。----------

2021-05-18 14:25:12 674

原创 C 语言中 (*n)[20] 与 *n[20] 的区别

C 语言中的指针与数组的问题在 C 语言中, 定义一个指针数组可以按照以下的方式定义:int *n[20];由于 [] 的运算级别要比 * 高, 因此这里的声明变量应当按照从右往左的顺序,即:n 是一个数组, 这个数组内的值是指针类型的,指针指向的数据类型为 int。因此这里声明的是一个int类型的指针数组。而以下的定义方式:int (*n)[20]由于 () 的优先级要比 [] 高, 因此这里的声明顺序应当是按照 括号内的声明——> [] 的声明,即:n是一个指针,它指向的数据类型是

2021-02-28 23:21:51 806

原创 psql: error: FATAL: Peer authentication failed for user “postgres“

psql: error: FATAL: Peer authentication failed for user “postgres”引言:在 CentOS 8 完成 PostgresQL 的安装后初始化数据库后在命令行连接到 PostgresQL 数据库时, 出现的异常问题。操作系统环境:PostgresQL 版本:连接命令:psql -U postgres出现的问题:psql: error: FATAL: Peer authentication failed for user "p

2021-02-24 16:29:04 8569 1

原创 Android: AAPT: error: duplicate attribute.

Android: AAPT: error: duplicate attribute.在使用 Android 的数据绑定时, 需要使用 <layout> 标签来包裹这个布局才能生成对应的数据绑定对象。出现问题的 XML 文件:<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:

2021-02-20 15:16:01 4673

原创 @RequestParam、@RequestBody、@ModelAttribute 注解的区别

Spring 中 @RequestParam、@RequestBody、@ModelAttribute 注解的区别。引言:在 Spring MVC中, 有时我们会需要通过客户端传入得到相关参数来进行相应的处理。一般的, 对于特定的数据的处理,如书籍按照 ISBN 查找,用户信息按照 ID 来获取… 这些参数仅仅需要相关的主键即可处理,因此只需要添加相关的路径变量作为参数即可(PathVariable)。但是,有时候, 我们需要很多个参数, 此时就需要我们把这些相关的参数封装起来, 作为一个参数传递。这时,

2021-02-19 23:18:05 710

原创 Android Navigation:MainActivity does not have a NavController

Android Navigation 异常:java.lang.RuntimeException: Unable to start activity ComponentInfo{...MainActivity}: java.lang.IllegalStateException: Activity ***..**.MainActivity@*** does not have a NavController set on *****问题代码如下所示:NavController navController =

2021-02-17 10:07:39 2526 5

原创 Spring @Resource、@Inject、@Autowired的区别及使用情况

Spring @Resource、@Inject、@Autowired的区别及使用情况引言:@Resource、@Inject、@Autowired 三种注解方式都支持基于 Setter 和字段的注入方式, 三者之间存在相似的地方但也存在一些差异。以下是我个人在学习这三种注入方式时了解到的内容。@Resource 注入@Resource 是 javax.annotation 包下的注解, 随着 Jakarta EE (Java平台企业版(Java Platform Enterprise Editi

2021-02-09 13:54:46 372

原创 Java 反射的基本使用

Java 反射的基本使用Field 通过获取对应的对象的类声明的字段,可以动态地修改指定对象的一些属性。Field 十分有用, 其中在使用泛型时可以带来很大的便利。BookChapter 类:import lombok.AccessLevel;import lombok.Data;import lombok.NoArgsConstructor;import java.lang.reflect.Constructor;import java.lang.reflect.Field;@Data

2021-02-08 21:48:23 53

原创 json 转换为 ndjson

json 转换为 ndjson使用 npm 的一个工具包 json-to-ndjson 可以很简单地将 json 文件转换为 ndjson 文件。安装 json-to-ndjson,前提是已经安装好了 Node.js, 使用 Node.js 的包管理工具 npmsudo npm install -g json-to-ndjson从待转换的 json 文件中读取输入流, 使用管道流入 json-to-ndjson, 再重定向输出指定的 ndjson 文件名。如下所示:cat books-

2021-02-04 15:54:15 921 1

原创 Jackson:Cannot construct instance of **** (although at least one Creator exists):

Jackson:nested exception is java.lang.IllegalArgumentException: Cannot construct instance of **** (although at least one Creator exists):要进行 json 转换的对象:import com.fasterxml.jackson.annotation.JsonCreator;import com.fasterxml.jackson.annotation.JsonPrope

2021-01-24 16:16:01 4444 1

原创 Jsoup 添加 JS 脚本内容时出现的转义问题

Jsoup 添加 JS 脚本内容时出现的转义问题使用 Jsoup 添加一个元素时, 如果设置文本内容则会将对应的 “<”,"&“等字符转义为 html 的字符 “&lt ;” ,“&amp ;”。如果添加的是 JS 脚本则要避免这些字符的转移。使用 “appendChild(DataNode dataNode)” 的方法即可。如下示例所示:使用 text(String text) 方法添加 JS 脚本:import org.jsoup.Jsoup;import org

2021-01-23 09:10:29 849 1

原创 Jackson: JSON parse error: Cannot deserialize value of type ***

Jackson: JSON parse error: Cannot deserialize value of type ***我遇到的问题是无法初始化一个对应的对象实例导致的这个问题,添加对应类的无参构造函数以及有参构造函数即可。我的序列化对象为如下所示:import com.fasterxml.jackson.annotation.JsonProperty;import lombok.*;@Data@NoArgsConstructor(access = AccessLevel.PUBLIC)

2021-01-22 15:43:34 4083 1

原创 Spring Boot Kafka: “The class *** is not in the trusted packages: [java.util, java.lang]“

Spring Boot Kafka: “The class *** is not in the trusted packages: [java.util, java.lang]”在使用 Spring Boot 集成 Kafka 消息中间件时, 在将对象自动转变为对应的消息对象发送以及接受时遇到这个问题。这是由于 Spring 集成的 Kafka 在转换对象时对最想的序列化和反序列化的保护措施。在对应的配置文件中设置对应的生产者和消费者的对于序列化信赖包即可:spring: kafka:# 生产

2021-01-21 22:56:26 2459 3

原创 Kafka ***** cannot be cast to class java.lang.String

Kafka ***** cannot be cast to class java.lang.StringKafka在默认情况下, 将会使用 org.apache.kafka.common.serialization.StringSerializer 对 key 和 value 进行序列化, 在这种情况下, 只能序列化字符串对象。如果发送的消息为一般的自定义对象, 将会出现 **** 无法转变为 java.lang.String .解决措施: 将默认的 key 和 value 在生产者和消费者中都将他们

2021-01-20 21:35:42 4863 1

原创 Kafka 删除指定的主题的所有信息记录

Kafak 删除指定的主题的所有信息记录使用 kafka-delete-records.sh 或者 kafka-delete-records.bat, 指定对应的代理和删除信息的JSON文件即可。 kafka-delete-record.bat 的帮助信息 创建的一个 topic, 有三个 Broker和 三个 partition这里由于是创建了三个 Broker, 因此需要指定三个 --bootstrap-server, json文件如下:把这个Json文件命名为 delete_parti

2021-01-20 14:25:02 1183 1

原创 CORS 头缺少 ‘Access-Control-Allow-Origin‘

已拦截跨源请求:同源策略禁止读取位于 ************ 的远程资源。(原因:CORS 头缺少 ‘Access-Control-Allow-Origin’)。个人遇到的问题:使用原生JavaScript的 XMLHttpRequest 进行跨域资源的访问,遇到了这个问题。这个问题是由于不同的域名之间的资源访问, 当前的页面或者服务器不允许其它地址的跨域资源访问造成的。解决方法如下:首先, 确保服务端允许跨域资源共享, 在Spring Boot中, 在对应的控制器方法中添加@CrossOrigi

2021-01-19 22:35:23 6141

原创 Java 对象的序列化

Java 对象的序列化引言: 通过对一个类实现 Serializable接口, 使得这个类可以被序列化以及反序列化。通过序列化一个对象, 是的这个对象可以转变为对应的字节流, 由于这个过程是基于 JVM 独立的, 因此在一台机器上被序列化的对象也可以在别的机器上再次进行反序列化。对象的序列化在很多情况下都是需要使用的, 比如:保存当前对象状态到文件或者数据库;将对象通过套接字传送到别的地方等。将一个对象设置为可序列化很简单, 只需要实现 java.io.Serializable 接口即可。比如, 以下

2021-01-13 17:57:18 429

原创 Spring Security 的基本使用

Spring Security 的基本使用引言:使用 Spring Security 可以保护我们的Spring 程序, 避免某些恶意的请求。以下是有关Spring Security 的一些基本使用。添加对应的 Maven 依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</ar

2021-01-12 23:25:19 364

原创 Spring 数据后端服务的使用

Spring 数据后端服务的使用引言:使用 Spring 的 HATEOAS 可以很方便的为每个资源添加对应的链接, 从而为每个使用Rest服务的应用提供更好的信息。但是也有缺点:每次为数据添加链接都需要自己手动地添加链接, 即使有 Assembler 类装配对应链接也需要手动实现对应的接口。这也有点麻烦, Spring 为我们提供了数据后端的服务, 从而能够自动生成对应的超链接。添加对应的Maven依赖项<dependency> <groupId>org.springf

2021-01-10 23:31:38 332

原创 Spring Boot HATEOAS的基本使用

Spring Boot HATEOAS的基本使用引言:HATEOAS(Hypermedia as the Engine of Application State):超媒体作为应用状态引擎。是一种创建自描述API的方式。在API做返回的资源中会包含相关资源的链接, 客户端只需要了解最少的 API URL信息就能导航整个API。一个具有注脚的文本。1maven 依赖项:<dependency> <groupId>org.springframework.hateoas&l

2021-01-09 12:31:20 1301 2

原创 Ubuntu 20.10 安装搜狗输入法之后无法登录进入系统的问题

Ubuntu 20.10 安装搜狗输入法之后无法登录进入系统的问题最近在 Ubuntu 上安装了搜狗输入法之后, 在登录的时候一直停留在登录的界面。Ubuntu版本:搜狗输入法版本:问题:在安装完成之后, 重启计算机, 登录进入系统, 无法正常进入, 停留在登录界面。解决方案:1. 初步分析造成问题的原因, 认为是搜狗输入法的安装导致系统异常, 因此选择将搜狗输入法卸载作为解决方案。2. 进入系统登录界面, 按下 Ctrl + Alt + F3,(有的可能需要在加上 “Fn” 才可以)。

2021-01-08 16:59:47 2401

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除