自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周先生丶的博客

学一学,记一记

  • 博客(8)
  • 资源 (14)
  • 收藏
  • 关注

原创 利用Java的动态编译、动态加载结合EasyRules实现业务规则的动态性

作为一名专门写bug的Java程序猿,相信大家都会遇到过这样的问题:项目的业务逻辑很复杂,而且还经常变化,今天的一个办理条件是小于5,明天就变成了大于10或者条件作废。这就很头疼了,里面的数字可以抽取到配置文件,但是大于和小于呢?条件作废呢?对于业务规则的复杂性,我们可以使用一些规则引擎来解决代码可读性差的问题。市面上也有不少的规则引擎框架,开源的不开源的,收费的不收费的,我们这里推荐使用的是...

2018-12-19 17:05:43 16709 14

原创 基于ZooKeeper实现分布式锁(公平和非公平两种形式)

关于ZooKeeper,上一篇博客有更详细的介绍(传送门)。一、分布式锁在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。 常见的分布式锁实现方式有Redis的SETNX和GETSET函数,数据库锁,zk的数据节点和监听事...

2018-12-31 21:54:19 3271 1

转载 ZooKeeper的主要功能和原理

本文转自:https://blog.csdn.net/weijifeng_/article/details/79775738一 、Zookeeper功能简介ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现。分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护...

2018-12-31 20:46:01 1961

原创 字节码操纵技术——Javassist

一、背景编程语言有静态语言和动态语言之分,例如:C、C++、Java等属于静态语言,JavaScript、Ruby、Python等属于动态语言。动态语言的灵活性非常高,遗憾的是,至今为止,作为Java程序员的我尚未享受到动态编程的乐趣。不过,Java也逐步提供了一些有限的动态编程机制,主要有下面三个方面:    (1) 反射     (2) 动态编译     (3) 调用Jav...

2018-12-30 19:00:58 2315 2

原创 Java SPI

参考:https://blog.csdn.net/sigangjun/article/details/79071850一、什么是SPI?有什么用?先贴一张官方文档的介绍图:总结一下:SPI,全名为Service Provider Interface。API大家都知道吧,它是针对使用者的;而SPI恰好相反,是针对服务提供者的,比如厂商或者插件。我们系统里抽象的各个模块,往往有很多不同...

2018-12-30 12:36:46 520

原创 Java内部类序列化

一个类能够序列化,需要满足两个条件:​​​​​​​类本身实现序列化接口Serializable 类所有的成员属性实现序列化接口SerializableJava的嵌套类(nested class)一共有四种:static nested class 静态嵌套类  inner class 内部类(非静态)  local class 本地类(定义在方法内部)  anonymous cla...

2018-12-27 15:10:02 5905

原创 设计模式的六大原则

1、单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。说明:单一职责原则遵循了高内聚低耦合的指导方针,一个类所作的事情应该是单一的,这样才能提高复用性和可维护性。举例:// TODO2、开闭原则(Open-Closed Principle, OCP)...

2018-12-21 14:29:09 149

原创 归并排序

简单粗暴的解释:内部有序外部无序的两个数组的排序。归并排序以O(NlogN)最坏情形时间运行,而所使用的比较次数几乎是最优的。它是递归算法一个好的实例。典型应用场景:MapReduce。 递归:一个方法调用自己本身。其关键点是要找到结束方法递归调用的条件出口。归并排序的合并算法说明,内容直接截取自《数据结构与算法分析·Java语言描述·第3版》。一、实现Java语言描述...

2018-12-01 14:32:19 339

自己动手写任务调度平台项目源代码

自己动手写任务调度平台项目源代码,更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/95396253

2019-07-11

根据数据库表自动生成实体类的源代码

用一个根据数据库表自动生成实体类代码的案例讲解了代码生成器的核心思路,相关博客地址:https://blog.csdn.net/qq_31142553/article/details/93673384。

2019-06-26

Apollo配置中心客户端使用案例源码

Apollo配置中心客户端使用案例源码。更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/87769239

2019-02-24

自己动手写MyBatis框架项目源代码

自己动手写基于Spring Boot的注解版MyBatis框架项目源代码,更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/86655951

2019-01-26

自己动手写SpringMVC框架项目源代码

自己动手写SpringMVC框架项目源代码,更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/86582066

2019-01-25

利用Aspect/Javassist/动态代理/Lombok等方式省略Controller的参数校验结果处理代码

利用Aspect/Javassist/动态代理/Lombok等方式省略Controller的参数校验结果处理代码,更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/86547201

2019-01-19

自己动手写基于动态代理,使用ZooKeeper作为注册中心,以Netty进行网络通信的RPC框架

自己动手写基于动态代理,使用ZooKeeper作为注册中心,以Netty进行网络通信的RPC框架。更多详情请查看相关博客:https://blog.csdn.net/qq_31142553/article/details/86316654

2019-01-13

NIO相关代码和文档资料

Java NIO相关代码和文档资料,详细信息请参考博客文章:https://mp.csdn.net/postedit/85925718

2019-01-06

dubbo-admin的war包和zookeeper的安装压缩包

包含dubbo-admin的war包、zookeeper的安装压缩包,相关博客:https://mp.csdn.net/postedit/85333379

2019-01-02

利用Java的动态编译、动态加载结合EasyRules实现业务规则的动态性的项目源码

利用Java的动态编译、动态加载结合EasyRules实现业务规则的动态性的项目源码,具体详情请查看相关博客https://blog.csdn.net/qq_31142553/article/details/85013989

2018-12-19

借鉴p6spy,实现自己的SQL执行监控器项目源代码

借鉴p6spy开源框架部分源码,实现自己的SQL执行控制器。详情请查看相关博文:https://blog.csdn.net/qq_31142553/article/details/84405154

2018-11-25

Spring Advice插件平台开发项目源代码

Spring Advice插件平台开发项目源代码,具体项目详情请看https://blog.csdn.net/qq_31142553/article/details/81298171

2018-08-05

自定义maven插件:自动生成API的word文档源代码

自己实现的自定义maven插件:可以根据配置的接口类和参数类,生成对应的word版本的API文档。还可以自定义自己的模板文件。

2018-07-30

Maven插件源码:根据库表生成实体类&根据实体类生成库表

自定义Maven插件:根据配置的数据库信息,生成对应的Java实体类文件,并自动生成备注、长度、是否为空等的doc注释。也可以根据已有的实体类,在数据库生成对应的库表。

2018-07-28

空空如也

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

TA关注的人

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