自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KIWI的专栏

关注公众号「KIWI的碎碎念」,分享不仅仅是技术

  • 博客(56)
  • 资源 (5)
  • 收藏
  • 关注

原创 yuque-helper 1.1.0 新功能更新

yuque-helper 1.1.0 新功能更新前言承接上文:如果是初次接触 yuque-helper ,推荐先观看上文。安装通过应用商店直接安装yuque-helper - Chrom...

2020-12-31 08:30:00 2768

原创 yuque-helper 1.0 发布了

yuque-helper 1.0 发布了什么是 yuque-helperyuque-helper 是一个开源免费的语雀 chrome 小插件. 目前功能如下:image.png另外还有一...

2020-12-23 21:07:07 2605

原创 【BREW】brew mysql 无法连接问题

故障现象今天本地项目怎么都启动不了,查看日志发现是连接本地数据库超时,报错信息如下:The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.排查过程首先查看代码,发现也没有修改到数据库相关的内容,突然出现有点诡异。转念一想会不会是数据库出了问题,果然,使用数据库管理工具 Datagrip 连接...

2020-09-26 20:51:54 655

原创 【Java拾遗】不可不知的 Java 序列化

【Java拾遗】不可不知的 Java 序列化前言在程序运行的生命周期中,序列化与反序列化的操作,几乎无时无刻不在发生着。对于任何一门语言来说,不管它是编译型还是解释型,只要它需要通讯或者持久化时,就必然涉及到序列化与反序列化操作。但是,又正因为序列化与反序列化太过重要,太过普遍,大部分编程语言和框架都对其进行了很好的封装,又因为他的润物细无声,使得我们很多时候根本没有意识到,代码下面其实进行了许许多多序列化相关的操作。今天我们就一起去探寻这位最熟悉的陌生人。序列化是什么百度百科中给序列化的定义

2020-09-26 15:22:21 240

原创 【译】10 个最有用的 git log 技巧

image.png原作者:Srebalaji原文地址:Ten Useful Git Log Tricks | Hacker Noon[1]译者:KIWI 的碎碎念[2]If you ar...

2020-09-02 07:30:00 289

原创 【译】10 个有用的 git log 技巧

原作者:Srebalaji原文地址:Ten Useful Git Log Tricks | Hacker Noon译者:KIWI 的碎碎念 If you are using Git for a while you should have come across git log. As everyone knows, the git log is a simple command that helps us to view the changes or project history.(如果你在使..

2020-09-01 22:45:01 582

原创 【测试】 Java如何优雅的生成测试数据

前言在日常的测试中,我们经常需要提前准备一大堆测试数据,用来验证业务逻辑。当然对于简单的数据类型完全可以通过 JDK 自带的Random类来实现。但是对于一个比较复杂的类,或者参数的格式有特殊要求的时候,Random就不适用了,这个时候就需要借助一些能够生成测试数据的框架。相关框架我在实际调研中,找到了 2 个在个人看来还不错的生成框架,他们分别是:jmockdatajava-faker下面我将一一介绍这些框架的优缺点以及适用场景。话不多说,直接开始撸代码。JmockData...

2020-08-04 08:46:46 3979

原创 【Maven】maven 插件开发实战

前言众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。包括我们日常使用到的类似 install、clean、deploy、compiler。。。这些命令,其实底层都是一个一个的 maven 插件。如何开发自己的插件1. maven 插件的命名规范在写一个项目之前,第一件事就是确定一个名称。maven 插件也不例外。它有着自己的一套命名规范。但是规范很简单...

2020-03-31 00:06:15 237

原创 【qdox】Java 代码解析利器 QDox

【qdox】Java 代码解析利器 QDox前言最近在写 maven 插件,涉及到了 java 代码解析这块内容。需要解析 java 源码,然后对于类中的不同部分进行处理。发现手写还是很难的,找了一圈发现了两个不错的工具可以使用,一个是javaparser,另一个是qdox。个人感觉 javaparser 强大一些,更新与维护也比较勤,但是相对来说上手难一点,从他的使用文档独立成书在买...

2020-03-22 21:53:10 1343

原创 【并发那些事】线程有序化神器CompletionService

前言话说有一天,产品经理突然找到正在摸鱼的你。产品:『我们要加一个聚合搜索功能,当用户在我们网站查询一件商品时,我们分别从 A、B、C 三个网站上查询这个信息,然后再把得到的结果返回给用户』你:『哦,就是写个爬虫,从 3 个网站上抓取数据是吧?』产品:『呸,爬虫是犯法的,这叫数据分析,怎么样,能实现吧?』你:『可以』产品:『好的,明天上线』你:『。。。』Code 1.0你很快完成了开发...

2020-02-18 23:08:46 386 1

原创 【Jasypt】给你的配置加把锁

前言前几天,有个前同事向我吐槽,他们公司有个大神把公司的项目代码全部上传到了 github,并且是公开项目,所有人都可以浏览。更加恐怖的是项目里面包含配置文件,数据库信息、redis 配置、各种公钥私钥密码全在项目里面,也一同上传了。如果只是单纯的业务代码泄露,情况倒还好,因为别人知道你代码,要想搞你,他必须要把源码看一遍,分析漏洞。 又因为代码上线,经过了层层测试,漏洞也不好找,至少短时...

2020-01-05 23:24:26 1146 2

原创 【xmind】 使用 Java 生成思维导图

前言在日常的工作与学习中,我们经常会使用思维导图这个工具,来把抽象而又无形的思考转换成有形并且具体的图像,是理清思路,梳理逻辑的一大神器。准确的说,思维导图并不是一个具体的工具,而是一种方法。是道而不是术。实际落地时,我们通常还需要借助外部的工具。从最原始的纸和笔,到各种软件,可以说是应用尽有。目前我在使用的是 xmind 这款软件,下面就会以 xmind 为媒介间接的通过 Java 代码画...

2019-12-03 21:34:25 5453 2

原创 【并发那些事】可见性问题的万恶之源

【并发那些事】可见性问题的万恶之源硬件工程师为均衡 CPU 与 缓存之间的速度差异,特意加的 CPU 缓存,竟然在多核的场景下阴差阳错的成为了并发可见性问题的万恶之源!(本文过长,如果不是特别无聊,看到这里就可以了)前言还记得那些年,你写的那些多线程 BUG 吗?明明只想得到个 1 1 = 2 的预期,结果他有时候得到 1,有时候得到 3,但偏偏有时候他也会返回正确的 2。明...

2019-11-25 20:57:09 1134

原创 碎碎念-03

碎碎念-03本文收集与整理日常生活中看到的各种信息,可能是一条微博、也可能是一张图片、甚至只是闲聊中的只言片语。总之,是一些能触动到我的东西,希望同样对你有用。当然因为这些内容都是可遇而...

2019-11-15 00:50:00 116

原创 【并发那些事】生产者消费者问题

Step 1. 什么是生产者消费者问题生产者消费者问题也叫有限缓冲问题,是多线程同步的一个最最最经典的问题。这个问题描述的场景是对于一个有固定大小的缓冲区,同时共享给两个线程去使用。而这两个线程会分为两个角色,一个负责往这个缓冲区里放入一定的数据,我们叫他生产者。另一个负责从缓冲区里取数据,我们叫他消费者。这里就会有两个问题,第一个问题是生产者不可能无限制的放数据去缓冲区,因为缓冲区是有大小的...

2019-11-09 17:01:28 1219

原创 【spock】单测竟然可以如此丝滑

0. 为什么人人都讨厌写单测在之前的关于swagger文章里提到过,程序员最讨厌的两件事,一件是别人不写文档,另一件就是自己写文档。这里如果把文档换成单元测试也同样成立。每个开发人员都明白单元测试的作用,也都知道代码覆盖率越高越好。高覆盖率的代码,相对来说出现 BUG 的概率就越低,在线上运行就越稳定,接的锅也就越少,就也不会害怕测试同事突然的关心。既然这么多好处,为什么还会讨厌他呢?至少在...

2019-11-03 22:05:13 2621

原创 【websocket】spring boot 集成 websocket 的四种方式

集成 websocket 的四种方案1. 原生注解pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency&gt...

2019-10-23 22:05:18 1785

原创 【并发那些事 】创建线程的三种方式

创建线程可以说是并发知识中最基础的操作了,JDK 提供的创建线程的方式,如果不包括通过线程池的话,目前有三种形式,它们分别是通过继承 Thread 类,通过实现 Runable 接口,通过 FutureTask。如下图所示下面整理了一下 3 种方法的具体使用与异同。创建线程的 3 种方法1. 继承 Thread创建一个类继承 Thread 并覆盖 run 方法class ...

2019-10-16 21:31:28 864

原创 【随笔】跳出程序员思维看世界

作为程序员,我真的有时候特别想 debug 这个世界。看看这个世界究竟是怎么运行的。因为经常会遇到她的输出跟我断言的不一样,或者我觉得正常的输入,却被她判定为非法。先分享两件事吧。第一件事,记得去年考驾照的时候,应该是在练科目三。教练带着我练车,当开到一个地方时,让我停车。然后跟我说:『这里是一个考点,看到前面那棵树没?考试的时候,你把车开到离那棵树大概这么长的距离,停一下车』。我顿时懵逼了...

2019-10-13 15:37:11 1072

原创 【随笔】爱因斯坦与科举制

前段时间知乎上有一个热门问题--《历史上有哪两件事听起来不在同一个年代实际上却同时发生的?》。点赞最高的是下面这个答案。答主的答案是『爱因斯坦在他1905年的论文《论动体的电动力学》中介绍了其狭义相对论,同年中国废除科举制度。』,很多人留言大呼吃惊,难以相信这是同一年的事情。这个答案其实就是本文的题目。不知道点开这篇文章之前,第一次看到这个题目的你,当时脑海里是什么样的想法。标题党?挂羊头买狗肉...

2019-10-03 20:37:08 745

原创 【Sentinel】sentinel 集成 apollo 最佳实践

【Sentinel】sentinel 集成 apollo 最佳实践前言  在 sentinel 的控制台设置的规则信息默认都是存在内存当中的。所以无论你是重启了 sentinel 的客户端还是 sentinel 的控制台。你所设置的规则都会丢失。如果想要 sentinel 在线上环境使用,要么花钱用阿里云上的付费版本,要么自己去实现规则的持久化,如果你或你所在的公司不差钱...

2019-09-22 20:54:37 1112

原创 【Rocketmq】通过 docker 快速搭建 rocketmq 环境

1. 安装 Namesrv拉取镜像docker pull rocketmqinc/rocketmq:4.4.0`启动容器docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --name rmqnamesrv -e "M...

2019-09-18 22:24:25 1651

原创 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

【Swagger】可能是目前最好的Spring Boot集成 swagger 的方案   据说程序员最恨的两件事:一件是别人不写文档,另一件是自己写文档。  可见文档真的是程序员生活中相爱相杀的存在。一方面对于使用者来说,一份全面、准确的文档简直就是旅行时的地图,烹饪时的菜谱,通关时的攻略。可以极大的提高对接的效率与尽可能的减少踩坑的概率。然而,一份...

2019-09-08 16:24:41 463

原创 【基准测试】JMH 简单入门

JMH 简单入门bdprtz)什么是 JMHJMH 是 Java Microbenchmark Harness 的缩写。中文意思大致是 “JAVA 微基准测试套件”。首先先明白什么是“基准测试”。百度百科给的定义如下:基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。可以简单的类比成我们电脑常用的鲁大师,或者手机常用...

2019-09-06 17:41:33 1233

原创 【Jmeter】- 使用 jmeter 进行 dubbo 接口测试

大家都知道 dubbo 是一个优秀 rpc 框架,它一般(dubbox 除外)通过对外提供 tcp协议的接口进行外部调用。而我们日常使用的测试工具 jmeter 并不支持 dubbo 协议的请求。所以本文到此结束,谢谢观看,再见。当然 jmeter 本身的确是不支持 dubbo 的请求,但是呢,有一个老哥,他通过 dubbo 的泛化调用特性写了一个jmeter 的插件,使用这个插件可以很方便的进行...

2019-09-05 11:25:02 1765 3

转载 『异常』浏览器报ERR_UNSAFE_PORT

今天正常在调试项目,因为本地跑的比较多。tomcat设的端口也比较多,结果一个端口设为6666的项目死活访问不了。但是项目是正常的,最后看了浏览器的报错才发现不是项目不能访问。而且因为不安全的端口。 6666-6669这几个端口是IRC协议使用的缺省端口,存在很大的安全风险,很容易被木马程序利用,出于安全方面chrome禁止了对6666端口的访问,同样使用webkit内核的chrome缺省状态下

2017-06-24 09:57:28 3292

原创 【Lombok】lombok使用教程

Lombok作用:帮使用者提高编码效率,减少重复与冗余的代码原理:ASM 动态修改class文件Lombok作用帮使用者提高编码效率减少重复与冗余的代码原理ASM 动态修改class文件配置maven依赖编译idea常用注解java bean相关SetterGetterToStringGetterlazy trueEqualsAndHashCodeNoAragsCo

2016-12-23 18:05:24 12820 2

原创 【Tomcat】Tomcat配置https证书

Tomcat配置https证书 网上搜索出来大多数是通过keytool自已生成证书来完成,这种在工作很少用到(浏览器会报不安全)。以下是通过申请的证书配置过程。因为在配置中遇到了一些坑,记之 1、准备证书与私钥demo.crt demo.key2、合并证书openssl pkcs12 -export -in demo.crt -inkey demo.key -out demo.p12 -n

2016-12-21 14:54:07 1592

原创 【spring】1、三种装配bean的方式

【spring】1、三种装配bean的方式 创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质 spring有如下三种装配bean的方法在XML中进行显式配置在Java中进行显式配置隐式的bean发现机制和自动装配显式配置 工作最常用的是隐式配置,因为自动扫描非常方便,但是有些情况下只能使用显式的手动配置。比如引入一些第三方库,要想让spring管理这个b

2016-12-14 23:51:57 11672 1

原创 【多线程】1、创建线程的两种方法

【多线程】1、创建线程的两种方法继承Thread对象public class HelloThread extends Thread { @Override public void run() { System.out.println("hello thread"); } public static void main(String[] args) {

2016-12-12 19:38:28 402

原创 【spring】AOP注解实现

spring aop常用的有以下: * 通知类型: * 前置通知(Before advice):在某连接点之前执行的通知,但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)。 * 后置通知(After returning advice):在某连接点正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。 * 异常通知(After th

2016-09-01 00:19:44 671

原创 【spring】spring 与 redis集成

spring与redis集成有两种,一种是通过spring-data来集成,还有一种是通过 jedis,第一种集成比较简单,第二种自由度更大,本文用的是第一种方式

2016-09-01 00:16:33 1503

原创 【shiro】shiro 学习笔记4-初识shiro授权

权限架构一般分为两个模块:认证与授权,前面三篇主要讲的就是认证的内容,现在开始授权环境:pom.xml <dependencies> <!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</arti

2016-02-18 16:54:05 452

原创 【shiro】shiro学习笔记3-散列功能

对于密码,有很多种加密方式散列是其中 最常用的,shiro提供了直接支持。环境 <dependencies> <!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId>

2016-02-16 15:57:12 3965

原创 【shiro】shiro学习笔记2-自定义realm

上一篇中使用的realm是shiro自带的realm,SecurityManager调用了IniRealm来进行认证。但开发中大部分是要自己实现realm的逻辑的环境jar包目录结构代码自定义realm认证程序shiro配置文件日志文件总结环境jar包pom.xml<dependencies> <!-- shiro --> <dependency> <groupId>or

2016-02-13 23:30:45 757

原创 【shiro】shiro学习笔记1-shiro初识

认证流程环境代码总结认证流程Created with Raphaël 2.1.0Start构造SecurityManager环境Subject.login()提交认证SecurityManager.login()执行认证Authenticator执行认证Realm根据身份获取认证信息End环境目录 包依赖 pom.xml<dependencies> <!-- shiro -->

2016-02-12 21:55:38 441

转载 Hibernate Java、Hibernate、SQL 之间数据类型转换

Hibernate映射类型 Java类型 标准SQL类型 integer java.lang.Integer integer long java.lang.Long bigint short java.lang.Short smallint float

2015-04-14 07:42:33 991

Hibernate Java、Hibernate、SQL 之间数据类型转换

&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;Hibernate映射类型&lt;/wbr&gt;&lt;wbr&gt;Java类型&lt;/wbr&gt;&lt;wbr&gt;标准SQL类型&lt;/wbr&gt;&lt;wbr&gt;integer&lt;/wb

2015-04-14 07:42:00 245

原创 【hibernate】<第一节>hibernate简单入门

所需工具:ide:eclipse or myeclipsejdk:1.7jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图)数据库:mysql 要支持事务的版本,命令行下或用navicat生成如图所示表项目目录结构如下:其中cn.kiwifly.ent

2015-04-13 23:48:01 516

【hibernate】<第一节>hibernate简单入门

所需工具: ide:eclipse or myeclipse jdk:1.7 jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图) 数据库:mysql 要支持事务的版本,命令行下或用navicat生成如图所示表 项目目录结构如下:其中cn.kiwifly.entity...

2015-04-13 23:48:00 129

jquery.1.6.2.sdocml&jquery.1.4.2.sdocml

jquery.1.6.2.sdocml&jquery.1.4.2.sdocml

2015-02-27

oracle 11g 连接驱动

oracle 11g 连接驱动

2014-11-16

json-lib-2.4-jdk15.jar

JSON包

2014-11-12

毕向东老师35天基础java全部源代码

毕向东老师35天基础java全部源代码 完全版。

2014-03-28

空空如也

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

TA关注的人

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