- 博客(339)
- 资源 (51)
- 问答 (2)
- 收藏
- 关注

原创 Spring+SpringMVC+Mybatis整合开发实践(含源码(两个整合实例)、PPT)
SpringMVC、Spring、Mybatis整合开发,包含了PPT进行讲解和实例展示如何进行整合开发,快速上手SSM框架,能进行一般的业务逻辑的开发,希望此项目可以帮助你进行学习
2016-08-12 22:17:27
19573
36

原创 "围观"设计模式(31)--行为型设计模式总结(模板、观察者、策略、状态、责任链、命令、访问者、中介者、备忘录、解释器)
设计模式源代码下载设计模式源代码下载1 模板方法模式模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。----WIKIPEDIA个人理解模板方法模式相对而言比较简单,一般的都是由抽象类定义好模板方法,然后,子类通过继承并实现其父类中定义好的模板中需要执行的具体的方法,调
2016-07-09 21:23:03
3382
2

原创 "围观"设计模式(30)--结构型设计模式总结(适配器、代理、装饰、外观、桥梁、组合、享元)
设计模式代码下载地址设计模式代码下载地址1 适配器模式在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。----WIKIPEDIA个人理解适配器模式:将两个不一致或者说
2016-07-09 21:14:18
2942

原创 "围观"设计模式(29)--创建型设计模式总结(单例、工厂、原型、创建者)
设计模式源码下载地址设计模式源码下载地址1 单例模式单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获
2016-07-09 21:06:29
2583

原创 "围观"设计模式(28)--总结之设计模式六大准则
设计模式源码下载地址设计模式源码下载地址1 单一功能原则单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行,意味着没有依赖)。围观设计模式(1)--单一功能原则 2 里氏替换原则在面向对象的程
2016-07-09 20:59:30
2635
原创 ElasticJob失效转移逻辑
本文主要讲解ElasticJob的失效转移逻辑从根本上说,失效转移逻辑是基于Zookeeper的节点的变化而实现的,这里大致说一下失效转移的流程,Scheduler启动开始后,会注册相应的监听器,这些监听器会监听数据节点的变化情况,那么失效转移逻辑的触发就是因为监听了instanceNode的节点的删除事件,这里其实就是利用了ZK的watch机制,回调的时候通过类型判断的是不是删除事件,当删除事件
2020-12-12 16:03:35
886
原创 ElasticJob源码深入解读
public class App { private final static String SERVERLIST = "192.168.154.100:2181,192.168.154.102:2181,192.168.154.104:2181"; public static void main(String[] args) throws SchedulerException
2020-12-12 16:03:18
1161
原创 SpringMVC源码解读--HandlerAdapter源码解读
一路的继承关系来看的话因为实现了InitializingBean的话,然后该类首先可以调用的方法就是afterPropertiesSet@Override public void afterPropertiesSet() { // Do this first, it may add ResponseBody advice beans initControllerAdviceCache()
2020-12-12 16:02:34
610
原创 SpringMVC源码解读--HandlerMapping代码解读
AbstractHandlerMappingAbstractHandlerMapping这个类,在父类进行设置容器的时候,就会被调用到的。那么调用的是 /** * Initializes the interceptors. * @see #extendInterceptors(java.util.List) * @see #initInterceptors() */ @Overr
2020-12-12 16:02:12
658
原创 SpringMVC源码解读--DispatcherServlet类
DispatcherServelet继承自FrameworkServlet类,然后FrameworkServlet类继承自HttpServletBean类,HttpServletBean类继承了HttpServlet类。那么接收来的请求将会从GenericServelt进而传递给HttpServelt然后传递给HttpServeltBean来,然后接下来是FrameworkServlet类。初始化
2020-12-12 16:01:47
763
原创 Quartz源码解读-任务是如何定时执行的
例子import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;import java.util.Date;/** * quartz定时器测试 * * @author leizhimin 2009-7-23 8:49:01 */class MyJob implements Job { public voi
2020-12-12 16:01:22
726
原创 JedisPool源码解析
JedisPoolConfig的继承结构这个BaseObjectPoolConfig中无非是一部分常量和私有的变量。public abstract class BaseObjectPoolConfig implements Cloneable { public static final boolean DEFAULT_LIFO = true; public static final
2020-12-12 16:00:53
965
原创 Jedis源码解析
Jedis类这个类主要是继承了BinaryJedis这个类。这个类搞了一堆的实现接口,一开始看吐的感觉,但是这里我想了下,因为你的jedis要做到门面的效果来对外提供服务的,那么这个地方针对不同类型的命令啊都要进行支持,比如说查询单个的,查询多值的情况,为了统一,先划分开来,然后再统一这个继承体系。这样的情况下,如果后期要改变架构我可以只是改变下jedis的实现方式就可以了,接口不需要动。Jedi
2020-12-12 16:00:37
799
2
原创 ElasticJob源码分析--定时任务执行JobScheduler类分析
public static void main(String[] args) { // 初始化数据源 DataSource dataSource = MovieServiceUtils.getDataSource(); // 定义日志数据库事件溯源配置 JobEventConfiguration jobEventRdbConfig =
2020-12-12 16:00:15
1028
原创 ElasticJob源码部分解读-Zookeeper建立连接
private static CoordinatorRegistryCenter createRegistryCenter() { CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(SERVERLIST, "movie_data"));
2020-12-12 15:59:54
1258
原创 Java源码Concurrent包剩余部分类
FutureTask /** * Simple linked list nodes to record waiting threads in a Treiber * stack. See other classes such as Phaser and SynchronousQueue * for more detailed explanation.
2020-12-12 15:58:22
300
原创 Java源码总结锁部分解读
LockSupport内部采用了Unsafe中的方法来实现的,使用其实现阻塞的相关操作,调用其park方法来实现线程的阻塞。Unsafe主要提供了硬件级别原子操作。1.Java线程一般与操作系统进程是一对一的关系,比如在linux平台,对应的是linux的轻量级进程(也就是linux的线程)。2.linux线程的调度和具体调度器有关,比如CFS调度器下,所有待调度的线程按照nice值排列在一棵红黑
2020-12-12 15:57:41
511
2
原创 Java源码Atomic部分源码解析
AtomicXXX加了volatile保证了可见性。本质上这一系列的都是采用的CAS的方式来更新原来的值的。boolean实际上是用的int值来存储的。AtomicXXXArray private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final int base = unsafe.arrayB
2020-12-12 15:57:09
388
原创 Java集合总结Map篇
MapMap是一个接口属于键值对的总接口,也就是集合的另一个大阵营。其派生的类包括AbstractMap、HashMap、Hashtable、IdentityHashMap、LinkedHashMap、WeakHashMap、ConcurrentHashMap、ConcurrentMap、SortedMap。这个派系和Collection其实是差不多的,只不过区别在于Map这边直接实现map的比较
2020-12-12 15:56:56
410
原创 Java源码总结整理注意点
1. Throwable是异常的鼻祖,下设Error 和Exception两大类异常,Exception又分为了两大类检查型和非检查型的异常。2. Booleanboolean中存储true和false全是常量final staic的,相当于缓存 public int hashCode() { return value ? 1231 : 1237; } pub
2020-12-12 15:56:10
364
原创 Java源码分析集合部分总结
按照自己的理解集合类分为多个分支一个是Collection派系的集合,一个是Map派系的集合。两者分别支撑起来整个集合的阵营。Collection派系的主要是List、Queue、Set.Map的部分则是键值对的派系,大部分应该说都是直接使用了这个键值对的形式。因为Map作为一个键值对的接口,已经定义了,键值对的各种操作的方法。为什么这么划分?这个问题我觉得确实是一个设计的重点,当初设计的时候,肯
2020-12-12 15:55:41
747
转载 聊聊同步、异步、阻塞与非阻塞
近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同步与异步首
2020-12-12 15:53:11
344
原创 Memcached调优
调优主要是针对与增长因子和chunk块的大小进行设置。f 参数factor增长因子默认是1.25,曾经是2,值越小slab的chunk size差距越小,内存浪费就越小。1.25的增长因子适合存储几百个字节的对象。n参数 :chunk的初始值。根据数据分布来调整factor建议:计算数据的预期平均长度,调整factor,以获得最恰当的设置。1.非均匀分布,即数据长度集中在几个区域内,如保存用户的
2020-12-12 15:51:54
404
原创 Memcached的分布式
Memcached分布式缓存系统如何实现的缓存功能,其服务器之间不存在相互的通信,其分布式主要是依靠于客户端的对于key的映射,映射到不同的服务器上以此来实现分布式的存储和查询,当然了这个映射较为固定,且一般情况下,映射到某一台主机后基本不会变化主机地址,除非发生宕机等事故时,可以通过重新计算映射到其他服务器上去。Memcached客户端通过配置SockIOPool的servers参数保存服务器地
2020-12-12 15:51:01
365
原创 Memcached数据存储方式
Memcached存储的方式称为Slab Allocator ,基本的方式是:1. 把内存划分为多个slab, 大小都是预先设定好的,用于解决碎片问题,分配给Slab的内存空间被称为Page,默认是1M,一个Slab下可以有多个Page。2.把一个page划分成多个chunk块,chunk块用于缓存记录的空间。chunk的值现有一个初始值然后根据增长因子来增大。3.slab classes:内存区
2020-12-12 15:49:52
688
原创 Memcached安装
安装Libeventhttp://libevent.org/ 目前最新版本libevent-2.0.22-stable.tar.gz解压;tar -zxvflibevent-2.0.22-stable.tar.gz进入目录;./configure --prefix=/usr 配置目录makemake install安装Memcached的服务端解压并进行安装./configu
2020-12-12 15:48:15
215
原创 Memcached使用
Memcached简介Memcached 是一款开源框架,功能很简单,主要是存储较小的Key-value键值对,存储小块的数据,他的最大存储的数据大小为1M,不过这个值是可以进行设置的。Memcached不会进行持久化操作,因为它的目的就是用于进行缓存,纯粹的内存操作,速度而言,比redis更为高效,可以参考之前的文章中的那个测试报告,但是,功能点而言相对于Redis而言是很少的,因为他只能是ke
2020-12-12 15:47:47
1066
原创 Hbase与Hive整合
Hbase版本0.96.2 Hive版本0.13 在整合的时候需要将Hbase的部分以Hbase开头的包导入到Hive的lib中,并且,尤其注意一个htrace-core-2.04.jar这个jar包,没有的话会出错。Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstr
2020-12-12 15:45:49
562
2
原创 Zookeeper连接异常--无法建立连接
遇到这样的一个问题,一开始以为是环境不好使,结果后来才发现环境没问题,但是这真的是一个很无语的修复方式。[org.apache.zookeeper.ClientCnxn] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnectjava.net.Con
2019-07-17 02:20:21
8193
原创 Redis连接异常
默认的情况下启动起来的redis只能提供给本地127.0.0.1的本地主机使用,在内部是可以进行连接的,但是外部想连接,需要进行配置才行。否则会出现连接无法获取的异常。复制一份redis.conf放入bin目录中,修改redis.conf文件。 改动几个地方:bind 127.0.0.1注释掉=>#bind 127.0.0.1#保护模式protected-mode yes
2019-07-17 02:18:41
1366
原创 Dubbo注册节点数据探查
Dubbo存在的意义就在于服务提供方只需要把自己的服务接口注册到注册中心中也就是Zookeeper中,而使用方只需要知道我需要什么接口,但是不必依赖于接口提供者的项目,通过Zookeeper作为中介进行沟通,消费者可以通过注册到上面的节点的数据获取到服务的相关信息,然后Dubbo中获取到这些信息之后,会使用配置好的协议来进行解析,建立与服务提供方的连接以及可以通过该协议调用接口中提供的方法,当然这
2019-07-17 02:17:49
743
转载 从MySQL Bug#67718浅谈B+树索引的分裂优化
从MySQL Bug#67718浅谈B+树索引的分裂优化1月 6th, 2013发表评论|Trackback问题背景今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5.5.28.t9,此分支最重要的一个改进,就是修复了MySQL 的Bug #67718:InnoDB drastically under-fill...
2019-07-17 02:15:50
1409
原创 React环境搭建与使用总结
React是什么React 是一个采用声明式,高效而且灵活的用来构建用户界面的框架。环境搭建由于React依赖nodejs环境需要先下载NodeJs环境,https://nodejs.org/en/download/安装完成后通过命令行查看安装是不是成功node -v国内调用npm较慢的情况下可以使用淘宝的镜像npm config set registry http...
2019-04-06 17:52:28
639
原创 致毕业--这一次将是人生新的征途
大约是三年前的一个夏天,当毕业充满了生活中大部分的色调的那几天到来的时候,才意识到自己也快要走了,而朝夕相处的同学们也将各奔东西,那时候并不觉得有什么不舍,知道看着宿舍的人一个个的走了,留下几个空荡荡的床板的时候,才知道这便是别离了。这几年往返在自己租住的小窝和导师研究院之间,几乎两点一线的生活。当然开始的日子是痛苦并且挣扎的,啃过馒头和萝卜干,甚至饿过肚子。经历有时候在真正走过去以后,再回头...
2018-07-22 19:07:54
795
2
原创 IDEA打开代码过程中Indexing导致界面卡死
IDEA卡住无法动作,不管怎么点一点反应都没有,个人感觉这个体验不是一般的差。。。。解决方法参考网上的方法:File——>Invalidate caches/Restart参考https://stackoverflow.com/questions/29965896/how-can-i-stop-indexing-intellij-idea...
2018-05-30 21:13:37
11654
2
原创 IDEA提交不显示Git文件呈现红色
该问题一般是也用过SVN,导致在使用中Git项目中,编译器的环境配置被篡改成SVN处理了,打开.idea文件夹中的vcs.xml看到部分被标记为svn的文件夹,将其替换为Git即可。<?xml version="1.0" encoding="UTF-8"?><project version="4"> <component name="VcsDirectoryMa.
2018-04-26 21:07:48
9983
原创 Failed to load JavaHL Library解决
Eclipse在打开的过程中出现这个弹出框的异常,一开始以为是java版本的问题,后来查了下,似乎是svn插件的客户端接口不可用进入svn设置页面,选中svn接口client切换为SVNKit即可...
2018-04-18 18:59:00
1378
原创 IDEA加载项目标红,Lombok安装
下载的项目导入之后居然显示红色,我一度以为是我的jar包导入出错了,不过,似乎能打开,又不像是错误的,然后看了下那个类,发现那个类中使用的@Setter注解和@Getter注解。这俩注解,实际上是使用了lombok这个插件来解析的。没有这个插件的情况下自然就飘红了。完成后重启下,即OK了...
2018-04-18 00:15:07
6893
2
原创 区块链技术
目前,比较火的区块链逐渐被重视起来,其根源与其说是其技术上带来的人类的共识与写作机制的转变,不如说是由比特币炒作带来的利润冲击了投机者的内心。 不过,这并不一定就是坏事,对于区块链这个技术而言,是有利的,因为这样的环境下,会带来无数的开发者磨刀立马,为其注入力量。什么是区块链? 区块链是一种能够包含交易信息的从前往后串联起来的链表结构。其作为比特币实现的基础技术支撑,可以说的确是很强大,实...
2018-03-31 23:43:27
483
原创 编译器加载代码期间意外终端导致SVN无法加载:svn cleanup failed–previous
svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted 解决方法:直接删除掉你加载的项目内部的文件,然后用编译器打开,打开后CleanUp Project,然后关闭掉项目重新加载...
2018-03-21 22:12:27
414
数据结构课程设计
2015-08-29
SQL Promot 辅助软件
2013-08-04
JAX-WS 2.2 RI 所包含的JAR包集合
2016-07-26
jax-ws与spring整合jar包下载
2016-07-26
HiberTest使用HQL动态构建对象
2016-02-23
Hibernate使用JPA注解代码
2016-02-16
[MongoDB权威指南].(美).霍多罗夫.(美).迪洛尔夫.(译)程
2016-02-02
Weblogic使用手册大全详解(中文)
2016-02-02
Struts2标签中文参考手册
2016-01-20
Hibernate-HQL、Criteria、SQL实现查询对照以及增删改代码
2016-01-02
ElasticJob明明配置了,也配置到ZK了,web端就是不显示数据
2017-07-18
决策树的叶子节点产生条件可不可以用增熵=0判断
2015-04-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人