自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

隔壁老王的专栏

每天进步一点点。。。。。。

  • 博客(25)
  • 资源 (10)
  • 论坛 (1)

原创 SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换

SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换Hello,隔壁老王时隔很久很久又来了,今天给大家介绍的是一个分库分表的框架—sharding-jdbc。这个框架在我公司用到了,使用的还算比较复杂。这个项目有两种数据库,Mysql和SQLServer。因此需要动态的切换数据源,并且数据库方言也需要...

2019-03-21 18:06:39 5919 4

原创 SpringBoot整合Shiro,权限的动态加载、更新,Shiro-Redis实现分布式Session共享,挤人功能(带后台管理界面)

本文章是介绍SpringBoot整合Apache Shiro,并实现在项目启动时从数据库中读取权限列表,在对角色进行增删改时,动态更新权限以及在分布式环境下的Session共享,Session共享使用的是shiro-redis框架,是根据真实项目写的一个Demo。网上有很多关于Shiro相关的文章,但是大多都是零零散散的,要么就只介绍上述功能中的一两个功能,要么就是缺少配置相关的内容。所以,我整理...

2018-04-22 11:04:30 29732 27

原创 Mybatis的SQL执行流程

Mybatis的SQL执行流程1、指定statementId和参数public static void main(String[] args) throws Exception { // 指定全局配置文件 String resource = "mybatis-config.xml"; // 读取配置文件 InputStream i...

2019-06-20 15:39:50 586

转载 Java锁--Lock实现原理(底层实现)

Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.util.concurrent.AbstractQueuedSynchronizer类,实现思路都大同小

2017-10-17 18:00:10 6538

原创 浅析Java中equals()方法和hashCode方法

今天去面试,总觉得自己什么都懂了,应该问题不大,当被问到“未重写的equals()方法和hashCode()方法里面的内容是什么?为什么在重写equals()方法的同时需要重写hashCode()方法?”时,说实话,一脸懵逼啊!!!一、equals()方法1、什么时候应该覆盖Object.equals()方法?原生的equals方法:public boolean equal

2017-10-16 22:59:49 1970

原创 深入理解Java虚拟机学习笔记——四、Java内存模型与多线程

1、Java内存模型Java内存模型的意义:屏蔽掉各种硬件和操作系统的内存访问差异,以实现Java程序在各种平台上一致的内存访问效果。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中把变量存储到内存和从内存中取出变量。此处的变量是指实例字段、静态字段和构成数组对象的元素,但不包括局部变量和方法参数(局部变量和方法参数是线程私有的,所以不存在竞争问题)。Ja

2017-04-14 23:43:41 632

原创 深入理解Java虚拟机学习笔记——三、虚拟机类加载机制

1、概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成能够被虚拟机直接使用的数据类型,这就是虚拟机的类加载机制。在Java中,类的加载、校验、解析和初始化都是在运行期间完成的。2、类加载的时机类从被加载都虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括:加载、准备、校验、解析、初始化、使用和卸载7个阶段。准备、校验、解析被统称为连接。

2017-03-26 21:44:07 668

原创 深入理解Java虚拟机学习笔记——二、垃圾收集器与内存分配策略

1、对象是否存活判定算法引用计数算法给对象添加一个引用计数器,当有其他对象引用它时,计数器加1;当引用失效时,计数器减1。任何时刻计数器为0的对象就是不可能在被使用的。引用计数算法实现简单,判定效率也很高,但是很难解决对象间相互循环引用的问题。可达性分析算法通过一系列被称为“GC Roots”的对象作为起点,从这些节点向下搜索,搜索所走过的路径被称为引用链,当一

2017-03-17 21:45:55 1135

原创 深入理解Java虚拟机学习笔记——一、JVM结构

运行时数据区JVM在执行Java程序时会将它所管理的内存划分成若干个不同的数据区域,每个区域都有各自的用途以及创建、销毁的时间。有些区域随着JVM虚拟机进程的启动而存在,有些区域则依赖于用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,JVM所管理的内存会被划分成一下几个运行时数据区:程序计数器 可以把程序计数器看作...

2017-03-16 22:56:29 825

原创 ActiveMQ——3、ActiveMQ高可用与集群搭建

1. ActiveMQ的高可用原理使用ZooKeeper(集群)注册所有的ActiveMQ Broker。只有其中的一个Broker可以提供服务,被视为 Master,其他的 Broker 处于待机状态,被视为Slave。如果Master因故障而不能提供服务,Zookeeper会从Slave中选举出一个Broker充当Master。Slave连接Master并同步他们的存储状态,Slave

2016-12-29 19:49:19 14399 5

原创 ActiveMQ——2、ActiveMQ API详解

1.Connection在成功创建正确的ConnectionFactory后,下一步是创建一个连接,它是JMS定义的一个接口。ConnectionFactory负责返回可以与底层消息传递系统进行通信的Connection实现。通常客户端只使用单一连接。根据JMS文档,Connection的目的是“利用JMS提供者封装开放的连接”,以及表示“客户端与提供者服务进程之间的开放TCP/IP套接字”。

2016-12-25 11:41:15 757

原创 ActiveMQ——1、JMS简介与ActiveMQ入门

1.背景&JMS概述当前CORBA、DCOM、RMI等RPC中间件技术已广泛应用于各个领域。但是面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:(1)同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;(2)客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行,如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会收到异

2016-12-24 18:20:58 1164

转载 Storm——3、 Storm Trident API 实践

一、概要     1.1 Storm(简介)     Storm是一个实时的可靠地分布式流计算框架。     具体就不多说了,举个例子,它的一个典型的大数据实时计算应用场景:从Kafka消息队列读取消息(可以是logs,clicks,sensor data)、通过Storm对消息进行计算聚合等预处理、把处理结果持久化到NoSQL数据库或者HDFS做进一步深入分析。1.2 T

2016-12-20 13:18:02 526

转载 转载——JAVA内存模型

深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来

2016-12-18 11:00:17 563

原创 Storm——2、Storm原生API编程、并发机制、可靠性与DRPC详解

1、HelloWord入门首先编写数据源Spout,可以使用两种方式:(1)实现IRichSpout接口。(2)继承BaseRichSpout类。需要对其中重点的几个方法进行重写或实现:open、nextTuple、declareOutputFields。其次编写数据处理类Bolt,同样也有两种方式:(1)实现RichBolt接口。(2)继承BaseBasicBolt类

2016-12-14 19:34:47 644 1

原创 Storm——1、Storm简介与环境搭建

1.Storm简介Storm是Twitter开源的一个分布式实时计算系统,用于数据的实时分析,持续计算,人不是RPC等等。实时计算需要解决的一些问题:(1)最显而易见的就是实时推荐系统,比如在淘宝等电商购物网站买东西时,我们会在网页旁边或者底端看到与自己所需商品相关的系列产品。这就是使用类似Storm实时计算去做的。Hadoop只是做离线的数据分析,无法做到实时分析计算。(2)车流

2016-12-12 20:39:28 797

原创 Dubbo简介与入门

Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架。作为一个重要的技术研究课题,当当网根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(Dubbo eXtensions)。1.Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案

2016-12-06 22:17:42 758

原创 Zookeeper——4、使用Curator操作Zookeeper

为了更好的实现Java操作zookeeper服务器,后来出现了Curator框架,非常的强大,目前已经是Apache的顶级项目,里面提供了更多丰富的操作,例如session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的zookeeper场景的API封装。Curator所需的maven依赖: org.apache.curator curator-framework

2016-12-05 19:57:23 15290 2

原创 Zookeeper——3、使用zkClient操作zookeeper

zkClient在原生API的基础上进行了封装,简化了zookeeper的复杂性。创建客户端方法:ZKClient(Arguments)参数1:zkServers,zookeeper服务器地址,用“,”分隔。参数2:sessionTimeout,会话超时时间,单位毫秒,默认为30000ms。参数3:connectionTimeout,连接超时时间。参数4:IZkConnecti

2016-12-03 23:59:46 14850

原创 Zookeeper——2、使用Zookeeper原生API操作Zookeeper

zookeeper的javaclient可以使我们更轻松的实现对zookeeper的各种操作,要使用java操作zookeeper,需要引入zookeeper-3.4.5.jar和zkclient-0.1.jar。zookeeper-3.4.5.jar是官方提供的JAVA API,zkclient-0.1.jar则是在原生API基础上进行扩展的开源Java客户端。客户端可以通过创建一个zook

2016-12-02 17:05:43 9383

原创 Zookeeper——1、Zookeeper基本概念

1.什么是Zookeeper?Zookeeper是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等。我们可以使用Zookeeper来实现比如达成共识/集群管理/leader选举等。Zookeeper是一个高可用的分布式管理与协调框架,基于ZAB算法(原子消息广播协议)的实现。该框架能够很好的保证分布式环境中数据的一致性。也只是基于这样的特性,使得

2016-11-30 22:03:01 2544

原创 Spring WebSocket+SockJS+Stomp实现一对一、一对多通信

最近项目上要做扫码登录,所以研究了一下Spring WebSocket。网上找了很多资料 springmvc(18)使用WebSocket 和 STOMP 实现消息功能、spring websocket + stomp 实现广播通信和一对一通信,要么就是不是自己想要的,要么就是只有中间一部分。所以特别写了这篇文章,一方面怕自己遗忘,另一方面是希望可以给大家一些参考。先放代码,在文章的最后我

2016-11-27 14:30:14 47732 18

原创 Netty——基本使用介绍

1.为什么选择Netty上一篇文章我们已经了解了Socket通信(IO/NIO/AIO)编程,对于通信模型已经有了一个基本的认识。其实上一篇文章中,我们学习的仅仅是一个模型,如果想把这些真正的用于实际工作中,那么还需要不断的完善、扩展和优化。比如经典的TCP读包写包问题,或者是数据接收的大小,实际的通信处理与应答的处理逻辑等等一些细节问题需要认真的去思考,而这些都需要大量的时间和经历,以及丰富

2016-11-20 19:51:56 93434 24

原创 Netty——1、网络编程基本概念

1.SocketSocket又称“套接字”,应用程序通常通过“套接字”向网络发出请求或应答网络请求。Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,不会因为在服务器端或在客户

2016-11-19 16:25:59 12979 9

原创 一、线程安全性

1.什么是线程安全性正确性:某个类的行为与其规范完全一致。线程安全性:当多个线程访问某个类时,该类始终都能表现出正确性的行为。当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的。2.原子性竞态条件:由于不恰当的执行时序而出现不正确结果的现象。当计

2016-11-10 21:26:41 1091

JavaSwing学生信息管理系统

基于mysql的 javaswing的 学生信息管理系统

2013-11-11

JavaWeb社区医院远程挂号系统V1.2

JavaWeb社区医院远程挂号系统V1.2 整合了SSH 希望对你有帮助

2013-11-11

计算器源代码

一份很不错的java源代码 ,,, 适合初学swing图形界面的看

2012-02-20

五子棋源代码

很不错的五子棋代码,,适合练习Swing图形界面

2012-02-20

程序员英语 都是一些历年的考题

程序员历年考试的题,很有用 希望对你有些帮助

2011-10-16

汇编实验,一些指令的用途

汇编指令的实验 实验二 汇编指令 一、 实验目的 学习数据传送、算术运算、串处理和控制转移等常用指令的用法;掌握数据定义伪指令的格式。 二、 实验原理 数据传送、算术运算、串处理和控制转移等常用指令的用法以及数据定义伪指令的格式。 三、 主要仪器及耗材 计算机、MASM软件包。

2011-10-16

SpringBoot整合Sharding-JDBC,实现从数据库加载sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换

SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换

2019-03-22

SpringBoot整合Shiro,实现从数据库加载权限、权限的动态更新、Session共享

SpringBoot整合Shiro,实现从数据库加载权限、权限的动态更新、Session共享

2018-04-23

zookeeper的jar包

zookeeper所依赖的jar包

2016-12-06

tomcat+memcached集群所需的jar包

couchbase-client-1.2.2.jar、javolution-5.4.3.1.jar、kryo-1.03.jar、kryo-serializers-0.10.jar、memcached-session-manager-1.6.5.jar、memcached-session-manager-tc7-1.6.5.jar、minlog-1.2.jar、msm-kryo-serializer-1.6.5.jar、reflectasm-0.9.jar、spymemcached-2.10.2.jar

2015-04-20

求教:Spring动态数据源+Durid,线程不释放问题。

发表于 2015-08-10 最后回复 2015-08-11

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