- 博客(71)
- 问答 (1)
- 收藏
- 关注
原创 记一次SPI机制导致的BUG定位【不支持:http://javax.xml.XMLConstants/property/accessExternalDTD】
首先看抛异常的第一条信息,org.apache.xalan.processor.TransformerFactoryImpl,这个类首先看名称,后面带了Impl,一般来说应该是某个接口的实现类,因为这个是引用的jar包里报的错,还是apache的jar包,一般来说不太可能是apache代码写错了,所以很有可能是我们调这个接口的时候,调错实现类了,实际上不应该调apache的这个实现类。再启动服务时,服务就正常了。
2024-01-24 16:47:38
1231
1
原创 记一次RestTemplate消息类型不匹配的BUG定位
添加jackson-dataformat-xml依赖使得RestTemplate请求消息头被默认设置为xml,从而导致请求失败
2022-08-21 18:43:41
839
1
原创 Druid数据库密码加解密
今天在干活的时候,需要用Navicat连个数据库,结果发现阿波罗里配的数据库密码是加密的,网上找了好多加解密方式,结果发现用的是Druid自带的加解密功能,在这里记录下直接新建一个Maven项目即可,添加druid的依赖:3、加解密代码代码比较简单,就是通过ConfigTools工具类生成私钥和公钥,然后分别对密码加解密...
2022-06-23 22:34:25
2555
原创 JDK1.8源码解析——Integer.bitCount
1、写在前面在做题LeetCode-位1的个数-题号191-Java实现时,发现Java的Integer类有个bitCount方法可以直接计算二进制数1的个数,进行学习后记录成博客,避免忘记。2、bitCount源码public static int bitCount(int i) { // HD, Figure 5-2 i = i - ((i >>> 1) & 0x55555555); i = (i & 0x33333333) + ((i &
2022-05-27 23:23:46
170
原创 LeetCode-位1的个数-题号191-Java实现
1、写在前面位1的个数2、题目大意给你一个整数,求该整数的二进制写法中有多少位是13、样例输入42949672934、样例输出315、思路将十进制数转化为二进制数的方法大家一定写过,代码如下:public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int cnt = 0; while
2022-05-27 23:15:21
219
1
原创 谷粒商城-分布式基础篇-环境搭建
1、写在前面既个人博客系统和Java虚拟机学习后,深感技术点过于零散,于是照着尚硅谷教程写了谷粒商城这个项目。项目分为基础篇和高级篇,其中基础篇…2、虚拟机环境搭建项目运行过程中需要用到MySQL、Redis等服务,为了安装方便,使用Docker来进行安装。首先需要安装Docker,可以安装在Windows上,也可以安装在linux上,这边我是在Win10的机器上装了VMware虚拟机,然后在虚拟机上安装了Ubuntu,然后在Ubuntu上安装了Docker,这一步不会的需要读者自行解决。2.1 D
2021-11-21 01:48:28
2089
9
原创 Spring WebFlux学习记录
本文按照如下顺序一步步深入解释WebFlux是个什么东西:1、Reactive Stream2、Reactor3、WebFlux其中 Reactive Stream 是 Java 9 新增的一个重要特性,而 Reactor 就相当于 Java 8 的 Stream 流 + Java 9 的 Reactive Stream,最后的 WebFlux 的核心就是基于 Reactor 的相关 API 开发的。1、Reactive Stream响应式流是 Java 9 引入的一套基于发布/订阅模式的
2021-10-19 17:03:45
373
原创 Spring5-入门案例
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-09-04 11:20:52
199
2
原创 JVM的垃圾收集算法
1、写在前面本博客为读书笔记,读的是《深入理解Java虚拟机》一书,在看这个书的时候,最大的一个感受便是“当初怎么就没有好好学习操作系统呢,不然也不会有这么多看的云里雾里的地方了”,不过那都是过去的事了,学习最好的时刻便是现在。2、什么是垃圾本文要讲的是垃圾收集算法,那么首先要确定的问题就是什么是垃圾,也就是哪些对象是要被回收的,对此有两种判断方式:2.1 引用计数算法什么样的对象是要被回收的,很明显,没用的对象才要被回收,那么就在对象里加一个字段,用来表示有几个对象在引用当前对象,这个字段叫引用
2021-06-02 00:00:34
252
3
原创 JDK编译以及在CLion中进行源码调试(抄书+踩坑记录)
1、写在前面最近在看《深入理解Java虚拟机》一书,其中第一章有个实验,叫“自己编译JDK”,在做这个实验的过程中,踩了点坑,因此写篇博客记录下2、环境准备首先准备一个linux环境,其它环境也可以,不过不在本博客介绍范围内,这里我用虚拟机安装了Ubuntu-18.04.5-desktop-amd64。编译需要用到编译器GCC或者CLang,读者可以任选其一安装,这里博主根据书本推荐,使用下列命令安装了GCC:sudo apt-get install build-essential接着编译过程
2021-05-26 14:50:45
3079
6
原创 个人博客系统整体介绍
1、项目简介在网上看了很多别人的个人博客,觉得很华丽,逼格很高,于是我也想搞一个玩玩,但是我吧,前端又不怎么会,于是就在B站找了个写博客的教程,先依样画葫芦弄个原型出来,别说,也不丑,能看,界面如下:...
2021-03-04 22:52:47
15404
17
原创 SpringBoot整合SpringSecurity
1、前言之前写过一篇SSM整合SpringSecurity,没看过的可以看看,可以发现在SSM框架里整合Security框架是很繁琐的,所以很多人选择用Shiro搭配SSM使用。而在SpringBoot中,这个情况就不一样了,如果说是简单使用,只需要在SpringBoot项目中加入Security的依赖就可以了,不需要写什么其他的东西。2、简单使用首先建一个SpringBoot项目,在pom文件中加入以下依赖:<dependency> <groupId>org.spr
2021-01-12 23:45:42
304
1
原创 记一次SpringBoot整合MyBatis时找不到Mapper.xml的BUG定位
1、前因最近开始写我的博客系统了,想着先把登录注册功能写了,框架采用SpringBoot+SpringSecurity+MyBatis,于是想着先把SpringBoot和MyBatis整合,谁知道,这一整合就整出问题了。2、BUG定位首先先给大家复现下我的BUG,下面是我的工程结构:这个代码是没问题,但是启动项目的时候就报了个错,这个错叫“Invalid bound statement(not found) ”,我百度了下,是说Mapper.xml文件没找到,有人说是因为Mapper.xml文件在
2021-01-10 21:31:50
1115
1
原创 SpringBoot整合Mybatis
1、创建项目会的人可以直接创建SpringBoot项目,通过开发工具添加依赖,我这边就新建Maven工程,一步步来。以下为工程文件结构:2、添加依赖pom文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2021-01-10 20:54:45
215
原创 设计模式-单例模式-指令重排思考
1、单例模式之前写过一篇单例模式的博客,有不了解单例模式的可以看看。2、指令重排指令重排指的是在程序执行时,为了性能考虑,编译器和CPU可能会对指令进行重新排序,下面举个例子,比如有如下程序:int a,b;a = 2;b = 2;这个程序在执行的时候,可能执行顺序就会颠倒,变成先执行“b = 2”,再执行“a = 2”,这个就叫指令重排。指令重排有几个基本原则,不清楚的可以看我引用的博客,这里要说的是顺序执行原则,指令重排保证在单线程内语义的串行性,举个例子:int a,b;a =
2020-12-31 13:43:59
928
原创 vue学习笔记-常用的基础语法
每个Java工程师都有个全栈的梦,本文为学习菜鸟教程Vue.js时所写,作为学习笔记,没有教程那么详细,建议与教程交互着看比较好,因为有些教程没写到的地方,我自己查资料做了补充。写在前面使用vue,要在网页上引入vue.js,如下:<script src="https://unpkg.com/vue/dist/vue.js"></script>每个vue应用都要靠实例化vue来实现,其语法格式如下:<script> var vm = new Vue({.
2020-12-11 23:05:31
298
原创 LeetCode-环形链表 -题号141-Java实现
1、题目链接环形链表2、题目大意题目大意非常简洁明了,给你一个链表的头结点,问你这个链表中是否有环3、样例输入head = [3,2,0,-4], pos = 1注:pos在实际输入中是没有的,这里只是为了标识这个链表是否有环,pos=-1表示没有环,pos≠-1表示最后一个节点的下一个节点下标,比如本样例输入,-4的下一个节点为24、样例输出true5、思路昨天有个小伙伴突然说要考考我的算法知识,我一口答应,于是乎她考了我这个环形链表,我刚看到题的时候,其实第一个思路想到的是把
2020-12-11 12:42:23
204
原创 一分钟在Linux上搭建个人博客【使用Docker安装WordPress】
1、前置条件现在用WordPress来搭建个人博客是很常见的操作,而WordPress也是号称5分钟能搭建好个人博客,而我这个博客号称一分钟搭建,需要使用到Docker技术。Linux上没有安装Docker的请看以下两篇博客自行安装:Ubuntu Docker安装docker下载镜像太慢的解决方案2、MySQL搭建个人博客肯定需要用到数据库,而MySQL是WordPress钦定的数据库,我们使用下面的命令直接拉取一个MySQL镜像:docker pull mysql下面直接启动一个MyS
2020-12-09 17:20:48
796
原创 SpringBoot整合ActiveMQ
1、队列通讯1.1 生产者1.1.1 添加依赖首先创建一个SpringBoot项目,这里我将项目命名为boot_mq_produce,添加如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <
2020-12-07 14:12:03
203
原创 Studio 3T无限试用
1、编写脚本编写bat文件@echo offECHO 重置Studio 3T的使用日期......REG DELETE "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /fRMDIR /s /q %USERPROFILE%\.3T\studio-3t\soduz3vqhnnja46uvu3szq--RMDIR /s /q %USERPROFILE%\.3T\studio-3t\Lwm3TdTxgYJkXBgV
2020-12-03 16:11:34
2192
4
原创 Java编码实现ActiveMQ通讯
1、使用Docker安装ActiveMQ要实现ActiveMQ的通讯,首先肯定是需要一个ActiveMQ服务器,对于ActiveMQ的安装,可以采用常规方法,也可以使用Docker直接拉一个镜像,这里我推荐使用Docker,根据下面两篇文章,就可以搭建出ActiveMQ的环境:Ubuntu Docker安装使用Docker安装ActiveMQ不是使用Ubuntu的可以自行百度教程解决,另外由于在国内Docker拉镜像比较慢,附一个解决方案:docker下载镜像太慢的解决方案2、实现Act
2020-11-29 22:49:22
448
原创 AES加密算法在Java中的应用
先记录下,回去写package com.bestwehotel.pmsadapterxms.utils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import j
2020-11-28 16:11:47
762
原创 LeetCode-组合总和 II -题号40-Java实现
1、题目链接组合总和 II2、题目大意本题是在组合总和的基础上进行了些许修改,建议大家先看组合总数的题解,以下为题目大意:给定一个正整数数组 candidates 和一个正整数目标数 target,在数组中选择任意个数字,使其和等于目标数,问这样的选择方法有哪些。其中每个数字在每个组合中,只能选择一次。题目同样要求组合不能重复。3、样例输入candidates = [10,1,2,7,6,1,5], target = 8candidates = [2,5,2,1,2], target =
2020-09-10 16:16:29
326
原创 LeetCode-组合总和-题号39-Java实现
1、题目链接组合总和2、题目大意给定一个无重复数字的数组 candidates,以及一个目标数字 target,从数组中抽取任意个数字,每个数字可抽取多次,使得抽取的数字之和等于目标数字,问这样的抽取方法有多少种,要求抽取的方法不能重复,比如以下两种便是重复的情况:[1,2,3] 和 [3,1,2]。注:题中出现的所有数字都是正整数。3、样例输入candidates = [2,3,6,7], target = 7candidates = [2,3,5], target = 84、样例输出
2020-09-10 16:00:08
244
原创 设计模式-单例模式-Java实现
1、单例模式都2020年了,现在打游戏已经是件很平常的事了。有些游戏中,会有一些特殊的角色,他们在游戏中是唯一存在的,譬如一些特定的世界 BOSS,不同的玩家因为副本容量不够大进入到不同的副本中,打的却是同一个 BOSS。这就是单例模式,顾名思义就是整个程序中只有一个实例对象。单例模式有两种:饿汉模式饱汉模式2、实例解析假设要在程序中有类 Singleton,现在要通过单例模式使得程序中只能有一个该类的实例,主程序如下:public class Main { public st
2020-09-04 11:18:41
219
原创 设计模式-模板方法模式-Java实现
1、模板方法模式个人认为模版方法模式应该是设计模式中最好理解的一种设计模式了,因为在我们的生活中处处可以看到运用这种思想的事物。譬如不同颜色的同种类型的车,他们在制造过程中,除了喷漆这一步骤不同外,其余步骤都是一样的,因此可以将相同的生产流程抽象出来,做成一个流水线,也就是做一个模板,此后生产汽车只遇到按照模板定义的流程依样画葫芦即可。这就是模板模式,在父类中定义处理流程的框架,在子类中实现具体处理。2、实例解析假设现在有这么个程序需要我们编写,我们需要输出三部分内容,分别为:开始符输入内容
2020-09-03 22:25:25
201
原创 设计模式-适配器模式-Java实现
1、适配器模式好多人讲适配器模式喜欢用电压举例,众所周知,我们用的电在远距离传输过程中,为了避免损耗过大,使用了高压电传输,但我们家里用的电只有220V,这中间用到了一个叫变压器的东西,它将高压电转换为了家用电;再比如要用笔记本连接投影仪,但笔记本上只有HDMI接口,没有VGA接口,那么就需要用到HDMI转VGA转换器来帮助实现投影。转换一词就是适配器模式的精髓所在考虑这样一种场景,A公司为B公司提供一组接口,现在A公司对这组接口进行了升级,姑且称升级前的接口为1.0版本,升级后的接口为2.0版本
2020-09-03 20:19:00
297
原创 在Java中实现 2+2=5
1、2+2=5昨天在一篇公众号中看到了这样一段代码,运行之后发现结果显示 " 2 + 2 = 5 ",于是就引起了我的好奇:public class Main { public static void main(String[] args) throws IOException, NoSuchFieldException, IllegalAccessException { Class cache = Integer.class.getDeclaredClasses()[0];
2020-09-02 11:21:01
823
原创 LeetCode-鸡蛋掉落-题号887-Java实现
1、题目链接鸡蛋掉落2、题目大意你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。你的目标是确切地知道 F 的值是多少。无论 F 的初始值
2020-08-28 14:16:03
964
原创 IDEA2020版开启Spring源码阅读之路
1、下载Gradle前往Gradle下载页面,如下图,找到最新版Gradle,点击complete下载压缩包:2、下载Spring源码前往Spring源码页面,如下图,第一步点击Code按钮,第二步在弹出框中点击Download ZIP下载源码压缩包:3、修改文件将Spring源码压缩包解压。i、使用本地Gradle在 \spring-framework-master\gradle\wrapper\ 路径下找到文件 gradle-wrapper.properties,文件里有五个配置,其中
2020-08-26 11:55:27
1307
空空如也
IIS漏洞中的Unicode漏洞
2017-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人