自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (6)
  • 收藏
  • 关注

原创 ZK 选举机制,从shell启动讲起

Zookeeper 选举机制思路分享 从启动讲起ZK 启动shell 启动 寻找ZK启动引导类以下是本机启动ZK的shell 命令➜ bin pwd /home/cmm/opt/common/zookeeeper/zookeeper-3.4.13/bin➜ bin ./zkServer.sh start /home/cmm/opt/common/zook...

2020-02-25 10:45:53 413

原创 java 相关学习笔记

jvmjava -XX:+PrintFlagsFinal 和 java -XX:+PrintFlagsInitial输出结果 = 表示 默认属性 := 表示修改过后的数据强 软 弱 虚 引用弱引用 WeakReference 只要触发GC 那么就 get() == null软引用 SoftReference 触发GC时不一定 get() 值为null,当内存不足的时候才会清除软引用...

2020-02-10 12:04:54 362

原创 Redis 学习笔记2

Redis 集群主从模式主从模式下从机无法写数据(默认)redis.conf 有如下配置不建议修改这个配置 如果修改将会导致从机可以写入数据主机无法同步,导致出现主,从机器数据不一致replica-read-only yes实战命令行# Replicationrole:masterconnected_slaves:2slave0:ip=127.0.0.1,port=8001,...

2020-02-10 12:02:26 286

原创 Redis 学习笔记1

Redis - 持久化Redis RDB在进行RDB的过程中 Redis会进行fork一个子进来进行持久化RDB 默认开启➜ redis ./redis-5.0.4/src/redis-cli -h 127.0.0.1127.0.0.1:6379> DBSIZE(integer) 10000002127.0.0.1:6379> bgsave Background sa...

2020-02-10 12:01:39 620

原创 JVM GC 收集器测试笔记

测试代码public static void main(String[] args)throws Exception { String str = "kkkk"; while (true){ str += str + new Random().nextInt(888888888) + new Random().nextInt(777777777); ...

2020-01-27 14:49:00 7302

原创 Flume Source&SourceRunner 介绍

Flume Source&SourceRunner 介绍Source 作为Flume 的数据接收源 source 有两个子类 PollableSource 和 EventDrivenSource[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xf1LU4dW-1571214286033)(https://i.ibb.co/cb2hSxX/TIM-20191...

2019-10-16 16:25:41 471

原创 Netty启动 ServerBootstrap#channel方法解析

Netty启动 ServerBootstrap#channel我们所写的启动代码public static void main(String[] args){ EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); ...

2019-09-09 20:33:07 736

原创 为什么SelectionKey集合需要迭代删除--从selector说起

为什么SelectionKey集合需要迭代删除–从selector说起Selector selector = Selector.open();ServerSocketChannel serverSocketChannel =ServerSocketChannel.open();serverSocketChannel.configureBlocking(false);ServerSocket...

2019-08-05 19:42:21 1451 1

原创 Zookeeper实现简易的分布式锁

Zookeeper实现简易的分布式锁利用Zookeeper实现分布式锁的主要思路就是利用了Zookeeper提供的znode创建临时序列功能首页使用Zookeeper客户端创建节点这里我们利用Zookeeper官方提供的客户端代码,下面就是maven依赖,这里使用的是3.5.5这个版本<!-- https://mvnrepository.com/artifact/org.apache...

2019-07-01 17:23:21 356 1

原创 Druid 连接池部分源码解读

Druid 连接池源码解读从 Druid SpringBoot 启动说起被注入的 DataSource 是什么首先我们来看一下正常java web代码中 javax.sql.DataSource是一个怎么样的实体,有以下一段代码@RestController@RequestMapping(&amp;quot;/druidTest&amp;quot;)public class DruidConnection { ...

2019-02-20 01:21:17 3138

原创 Spring Mybatis 启动,执行过程 源码Debug

版本信息&lt;dependency&gt; &lt;groupId&gt;org.mybatis.spring.boot&lt;/groupId&gt; &lt;artifactId&gt;mybatis-spring-boot-starter&lt;/artifactId&gt; &lt;version&gt;1.3.2&lt;/version&gt;&lt;/depende

2018-12-29 17:11:49 1220

原创 从 SpringBoot 单元测试到 Junit 监听器

从 SpringBoot 单元测试到 Junit 监听器Junit 是怎么启动的首先我们来Debug看看跑单测时线程栈的入口是什么下面是 Idea 编译器copy的调用信息 (我认为应该就是线程栈信息)t1:25, FirstDemo (cn.hyperchain.junitTest)invoke0:-1, NativeMethodAccessorImpl (jdk.internal....

2018-12-03 23:24:02 2050

原创 Spring MVC 执行流程 (DispatcherServlet)

Spring MVC 执行流程 (DispatcherServlet)Servlet容器将http请求封装为HttpServletRequest和HttpServletReponse交于Spring MVC 的前端总控制器 DispatcherServlet 处理(门面模式)执行DispatcherServlet#service执行DispatcherServlet#doService...

2018-11-26 16:38:03 554

原创 从 Spring Boot 启动到 ServletContainerInitializer

Spring Boot Tomcat 启动配置编写这篇文章的起因是同事问了一个关于Spring Boot项目Tomcat启动配置的问题。正常平时开发过程中,我们开发spring boot项目一般会使用Spring官方的脚手架搭建Spring Boot项目,启动也是一般使用Spring Boot启动。同样的打包方式为jar包,但是如果想部署到Tomcat中的话就需要对项目进行一个简单改造,...

2018-10-17 18:40:38 5382 2

原创 利用Mybatis拦截器实现分页查询

手写Mybatis拦截器版本 Spring Boot 2.0.3.RELEASEMybatis自定义拦截器如果有阅读过我之前一篇博客 Hibernate 刷新上下文 的朋友应该还记得 Hibernate 的上下文中可以添加自定义的事件监听器。当初是为了解决一个类似于二段提交的的问题,后面我利用 Hibernate 自带的上下文事件监听器算是比较优雅的处理了。所以当时就想看看 Mybatis ...

2018-09-24 15:18:27 2595

原创 CheckStyle Git hook 简单配置

本次配置 Githook主要有以下几个操作步骤下载Checkstyle jar包 官网地址,GitHulb,目前最近版本为checkstyle-8.12-all.jar下载对应的规范约束xml文件,目前主要是有两种sun_checks.xml 和google_checks.xml根据官网上的介绍以命令行形式试着执行一次,以下是官网上的命令行demojava -jar che...

2018-09-21 16:58:14 2723 2

原创 Javabean Validation

JSR 303&nbsp;&nbsp;&nbsp;&nbsp;参数校验是我们程序开发中必不可少的过程。用户在前端页面上填写表单时,前端js程序会校验参数的合法性,当数据到了后端,为了防止恶意操作,保持程序的健壮性,后端同样需要对数据进行校验。后端参数校验最简单的做法是直接在业务方法里面进行判断,当判断成功之后再继续往下执行。但这样带给我们的是代码的耦合,冗余。当我们多个地方需要校验时,我们就需...

2018-09-21 16:55:02 1171

原创 Spring 环境参数

观察者模式 发布/订阅JDK 的工具java.util.Observer 是一个订阅者java.util.Observable 是一个发布者发布者 : 订阅者 = N :N示例代码public class ObserveDemo extends Observable{ public static void main(String[] args) { Obs...

2018-09-21 15:37:53 681 1

原创 Hibernate 刷新上下文

Spring Boot 版本 2.0.3.RELEASE刷新上下文目的当需要进行数据同步时,需要不仅往自己项目数据库(A)更新数据,还需要对外部数据源(B)进行更新。如果B不能进行回滚就GG。所以只能先写A,再写B,B成功A提交,B失败A回滚。但是有个问题如果代码写在一个Service方法(同一次事务)中因为hibernate存在缓存导致save(entity)会导致在B执行完成之后才会执行...

2018-09-21 15:31:25 570 1

原创 Spring MVC -- Accept 与 Content-Type

Rest 请求请求方式安全幂等接口说明GET安全幂等获取资源PSOT不安全非幂等创建资源PUT不安全幂等更新资源DELETE不安全幂等删除资源幂等/非幂等 依赖于服务端实现,这种方式是一种契约HTTPAccept 与 Content-TypeAccept代表发送端(客户端)希望接受的数据类型。比如:Accept:...

2018-09-19 17:26:32 2787 1

原创 数据库的并发问题

1.脏读(dirty read)&amp;nbsp;&amp;nbsp;&amp;nbsp;A事务读取了B事务尚未提交的更改数据,并且在这个数据基础上进行操作。如果此时恰巧B事务进行回滚,那么A事务读到的数据是根本不被承认的。以下是一个取款事务和转账事务并发时引起的脏读场景。时间转账事务A取款事务BT1开始事务T2开始事务T3查询账户余额为1000元T4取出5...

2018-09-19 16:52:47 6191 1

原创 Spring MVC 控制层参数获取

Spring MVC 如何获取参数值如果使用的反射的模式是不能直接拿到参数名称的,在 java 1.8 以后可以开启保留参数 下面是maven的打包命令 保留参数&amp;lt;build&amp;gt; &amp;lt;finalName&amp;gt;lakers&amp;lt;/finalName&amp;gt; &amp;lt;plugins&amp;gt; &amp;lt;plugin&am

2018-09-19 16:45:53 724

原创 Spring @Transactional 事务回滚机制

Srping 事务&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在Spring 的世界里面我们一般使用@Transactional 注解在对应方法上面声明为一个事务方法。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;但是在默认不写@Transactional(rollbackFor = Exception.class)默认回滚RuntimeException今天就希望通过

2018-09-19 16:44:27 25735

原创 Jpa save 与 flush debug源码过程

版本:Spring Boot 1.5.8.RELEASEJpaRepository强烈建议 repo 接口继承 JpaRepository 因为其中拥有 flush 相关的一系列的方法,当执行save()不一定会去提交到数据库,与数据库进行约束的匹配。在通常情况下 JpaRepository 在注入的时候会是 SimpleJpaRepository 的实例save()@Transacti...

2018-09-19 16:42:01 4468 3

原创 RPC远程过程调用之我的理解(附带项目希望有人交流)

最近在学习开发过程中使用到了阿里开发的dubbo框架,将项目进行分布式。 最近的学习了解到了一些关于RPC的原理,心血来潮就试着实现了一下自己的RPC功能。 项目主要分为三个子项目 API 项目 定义了通信的数据模型和序列化反序列化所使用的工具以及项目测试使用的bean和接口 Server 项目作为RPC的过程服务提供者 Client 项目是服务的调用者我这里使用的是MINA作为TC

2017-12-08 16:51:53 3715

原创 SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例

SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例这是一个简单的SpringBoot整合实例这里是项目的结构目录首先是pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2017-07-13 09:24:34 42572 8

原创 自学java数据结构,实现了AVL树

package data_structure.tree.two;import java.util.ArrayList;import java.util.List;/** * 完全平衡二叉树 * @author chenmingming * */public class AVLTree >{ /** * AVL树的节点 * @author chenmingming

2016-11-30 15:14:17 414

原创 简单的java 反射机制实践 map 与object对象的转换

这是我对java反射机制的一点认识,利用反射可以将map集合与object对象进行转化,我想如果可以的话可以进一步改善当做一个框架来编写

2016-09-12 16:13:03 3143

一个来自菜鸡的RPC实现

本人平时开发学习过程中对RPC技术的一些认识,利用了代理和反射实现了一个简陋的RPC实现过程

2017-12-08

抠脚的RPC实现

本人平时开发学习过程中对RPC技术的一些认识,利用了代理和反射实现了一个简陋的RPC实现过程

2017-12-08

SpringBoot mybatis druid pagehelper freemarker 整合实例

SpringBoot mybatis druid pagehelper freemarker 整合实例

2017-07-13

jQuery 中文开发手册

jQuery 开发手册

2016-12-08

HTML 中文文档

HTML中文开发文档chm

2016-12-08

gcc 2.95 所需文件

flashsim disksim 使用相关文件 gcc 2.95

2016-03-14

空空如也

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

TA关注的人

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