自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Mybatis源码-执行sql查询

在上一篇 Mybatis源码-一级缓存/二级缓存 中,介绍了执行查询,首先去二级缓存中查找(前提是开启二级缓存)找到就将结果集返回。如果没有找到就去一级缓存中查找,找到就返回结果集,如果没有找到就会去查询数据库。 // 顾名思义,查询数据库private <E> List<E> queryFromDatabase(MappedStatement ms, Object p...

2019-10-29 18:00:36 344

原创 Mybatis源码-一级缓存/二级缓存

在上一篇 Mybatis源码-解析Mapper 文章中,已经介绍了Mybatis解析mapper.xml文件中的元素,本文将先介绍Mybatis的一级缓存和二级缓存。当解析mapper.xml文件完后,就要根据解析的结果开始执行CURD操作,CURD这些方法已经被封装进了MapperMethod当中,此时开始执行MapperMethod中的execute()方法public Object exe...

2019-10-21 16:44:40 126

原创 Mybatis源码-解析Mapper

在上一篇 Mybatis源码-解析配置文件 文章中介绍了配置文件中的其他节点,本篇将介绍Mybatis解析Mapper。当解析到mappers的节点时,就能获取到Maper文件,进入到mapperElement()方法中开始解析mapper文件// 通过解析 mappers 节点,找到Mapper文件 private void mapperElement(XNode parent) thro...

2019-09-29 17:47:39 244

原创 Mybatis源码-解析配置文件

在Mybatis中有两个重要的对象SqlSessionFactory和SqlSession,SqlSessionFactory通过SqlSessionFactoryBuild获得,SqlSessionFactoryBuilder 则可以从 XML 配置文件或通过Java的方式构建出 SqlSessionFactory 的实例。SqlSessionFactory 一旦被创建就应该在应用的运行期间一...

2019-09-29 11:23:09 131

原创 三、Zookeeper集群特点和选举机制、客户端命令

一、特点ZooKeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群;Leader负责进行投票的发起和决议,更新系统状态;Follower用于接收客户端请求并相应结果给客户端,在选举Leader时参与投票;集群中只要半数以上的节点存活,ZooKeeper集群就能正常工作;全局数据一致:每个server保存相同的一个副本,client无论连接到哪个serve...

2019-09-06 18:02:01 269

原创 二、Zookeeper数据结构和节点类型、分布式安装

一、数据结构1、ZooKeeper数据类型的结构与Unix文件系统很类型,整体上可以看作是一棵树,每个节点称作一个ZNode。2、ZooKeeper集群自身维护了一套数据结构。这个存储结构是一个树形结构,这上面的每一个节点,称之为“znode”,每一个znode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识数据结构图:二、节点类型ZNode有两种类型:1、短暂...

2019-09-06 18:00:52 176

原创 一、Zookeeper简介及安装配置

一、简介ZooKeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。ZooKeeper从设计模式角度看:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理数据,然后接受观察者的注册,一旦这些数据的状态发生变化,ZooKeeper就负责通知已经在ZooKeeper上注册的观察者做出相应的反应,从而实现集群中类型 Master/Slave管理模式。ZooKe...

2019-09-04 21:32:01 112

原创 五、ZooKeeper+ActiveMQ集群

一、安装ZooKeeper分别在三台服务器上解压ZooKeeper,解压完成后进入 zookeeper/conf目录下,把zoo_sample.cfg文件名修改为zoo.cfg,然后在到zookeeper目录下创建data/zkData 目录,然后在 data/zkData 目录下创建一个myid文件,myid里面的内容是一个大于0的一个自然数,这个自然数就代表ZooKeeper服务器的编号。接...

2019-08-27 09:21:27 160

原创 四、Spring整合ActiveMQ

首先创建一个maven项目,项目结构如下:pom.xml文件<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifact...

2019-08-27 08:46:22 114

原创 三、ActiveMQ API

一、Producer API1、消息发送消息发送有四个重载方法:void send(Message message); 发送消息到创建消息生产者时指定的目的地void send(Message message, int deliveryMode, int priority, long timeToLive); 发送消息到创建消息生产者时指定的目的地void send(Destinati...

2019-08-26 13:57:43 125

原创 二、ActiveMQ安全认证和消息持久化

一、安全认证上面的读写和管理的操作可以修改成其他用户组,也可以同时使用多个用户组,使用 , 分隔,例如:read="admins,users",admins组和users组。在 <jaasAuthenticationPlugin/> 标签中的configuration的值是activemq要与conf/login.config中的节点名一致,如下conf/login.config...

2019-06-02 21:39:15 136

原创 一、ActiveMQ简介、安装、PTP模式和Topic模式

一、JMS简介JMS全称 Java Message Service(Java消息服务),是java的一套API标准,是企业消息产品(有时也被称为消息中间件产品),最初的目的是为了使程序能够访问MOM系统(Message Oriented Middleware 面向消息的中间件 ),利用高效可靠的消息传递机制进行平台无关的数据交流,还可以在分布式系统中发送消息,进行异步通信。JMS是一个于平台无...

2019-05-30 08:40:50 465

原创 SSM+Shiro+原生的WebSocket集成的即时聊天系统

一、项目简介这是一个即时通讯的Maven项目,采用了 Spring+SpringMVC+Mybatis+Shiro+原生的WebSocket 技术,这个项目主要是为了熟悉框架之间的整合,熟悉WebSocket的使用。SSM是目前使用较的框架,Shiro是一个安全管理框架,主要用来用户的认证登录和授权,WebSocket用来做消息推送。这个项目主要功能有登录、注册、管理员群发消息和单聊。二、...

2019-05-21 17:33:55 1503 3

原创 第七章(3)、集合-Map

一、MapMap集合是由一系列键值对组成的集合,提供了key(键)到value(值)的映射。Map集合中key(键,Map中key底层使用的是Set集合存放的)不能重复,每个键也只能映射一个value(值)。Map集合的子类:HashMap、TreeMap。Map中的成员方法:1、Object put(Object key, Object value); 将指定的“键-值”对存入Map...

2019-05-14 21:30:27 108

原创 第七章(2)、集合-Set

一、SetSet也是一个接口,Set集合中没有额外添加的方法,只有继承Collection中的方法,Set接口的集合类中的元素是不可重复的。Set集合的子类:1、HashSet:散列存放(无序的)2、TreeSet:有序存放3、LinkedHashSet:数据接口是由哈希表和链表组成,哈希表保证了元素的唯一性,链表保证了元素的有序性。Set集合保证数据唯一性 的原理:在存储...

2019-05-10 09:20:35 129

原创 第七章(1)、集合-List

一、集合概述1、集合是java api提供的一系列的类,可以动态的存储多个对象(集合只能存储对象,不能存储基本数据类型数据,但是可以存放基本数据类型的包装类;数组两者皆可);2、集合的大小可以改变,且能存储不同数据类型的对象,而数组的大小不能改变,只能存放一种数据类型的数据;3、集合类支持泛型。二、集合框架关系集合类可以分类两大类:Collection和Map1、Collect...

2019-05-09 09:48:01 295

原创 第六章、数据结构

一、数组存放同一种数据类型的多个元素的容器,通过索引(内存偏移量)进行元素的访问,数组的大小一旦确定就不能改变。数组其实也是线性表结构,在内存中数组的元素是紧挨着连续存储的。特点:查询快、增删慢举例:定义一个数组:int arr = new int[]{1, 2, 3, 4, 5};想在2的后面插入一个新的元素11,这时候就需要定义一个新的数组arr2,数组arr2的长度是arr的长...

2019-03-26 08:57:16 123

原创 第五章(2)、常用类-基本类型包装类和StringBuffer、Math、System、Date和DateFormat

java是一门纯粹的面向对象的语言,而它却提供了八个基本数据类型,这是为了提高代码的性能,因为基本数据类型是放在栈内存中,对象放在堆内存,但是java也提供了基本数据类型相对应的包装类。基本类型 -- 包装类:1)byte -- Byte;2)short -- Short;3)int -- Integer;4)long -- Long;5)float -- Float;...

2019-01-28 08:31:14 167

原创 第五章(1)、java常用类-Object、String和正则表达式

一、Object        前面讲述面向对象接口的时候说过,Object是所有类的超类(父类或基类),所有的类都直接或间接的继承了这个类。Object类中的成员方法(可在网上搜索java api文档进行查看)。1)public int hashCode():返回对象的哈希码值,是根据哈希算法计算出来的值。2)public final Class getClass():返回对象的...

2019-01-23 08:45:49 157

原创 第四章(4)、面向对象-包、权限修饰符和内部类

一、包       在前面的代码示例中,把所有的类全部都写在了同一个java文件中,在程序中是不建议这么做的(特殊情况除外),一般都是一个java文件中就写一个类。在程序中我们会写很多的类,如果类很多且全部方法在一个文件夹内,这样看起来就很乱,查找起来也麻烦,就像我们电脑上安装的程序,基本上都是放在不同的文件夹中。同理,我们也可以给这些java文件分类,放到不同的文件夹中,这种行为成为分包。...

2019-01-21 22:16:18 133

原创 第四章(3)、面向对象-多态、抽象类和接口

一、多态        同一个事物(对象),在不同时刻的表现形式称为多态,比如水,在不同的时刻会呈现固态、液态、气态 。在java中,比如我有一个Dog(狗)类,那么它可以是自己的类型(狗可以是狗的类型)Dog d = new Dog(),狗又是属于动物,那么狗也属于动物类型 动物 d = new Dog()。那么什么时候才能使用多态呢?前提和体现:1)有继承关系(狗类可以继承动物类)...

2019-01-20 21:19:58 227

原创 第四章(2)、面向对象-继承

一、继承       继承就是抽取多个类相同的成员变量和成员方法放到另一类中,如果某个类的成员也有这些,就直接去继承那个类。java中是通过extends关键字去实现类之间的继承关系,格式:class 子类名 extends 父类名 {}。父类又可以称为基类或超类,子类也可称为派生类。比如人都有性别、名字、年龄这些属性,有吃饭、睡觉等行为,老师和学生同样也有这些,那么就可以把这些公共的属性...

2019-01-19 10:28:24 130

原创 第四章(1)、面向对象概述和封装

一、面向对象        首先看看面向对象和面向过程的区别,面向过程就是对程序的每一个步骤或者每一个流程的具体实现,而面向对象是对对象的使用,具体的步骤或流程由对象去处理,而我们操作的还是这个对象。举个例子:就拿洗衣服来说吧,在没有洗衣机之前,手洗衣服的过程就有:把衣服放到桶里--&gt;倒洗衣粉--&gt;搓衣服--&gt;反复清洗--&gt;拧干--&gt;晾衣服,这就是面向过程,而使用...

2019-01-18 08:30:54 178

原创 第三章、方法和数组

一、方法方法其实是把实现相同功能的代码放在一起,需要的时候再去调用。格式:修饰符    返回值类型    方法名(参数1,参数2,...,参数n) {                语句体;                return 返回值;            } 格式解释:1)修饰符:目前接触到的修饰符public static,还有private、prot...

2019-01-17 19:54:20 120

原创 第二章(3)、java基础语法-选择语句和循环语句

       上一节讲述了java的运算符,本节开始讲述选择语句和循环语句。一、顺序结构        顺序机构是程序最基本的流程结构,程序会按照先后顺序来执行,写在前面的代码先执行,写在后面的代码后执行,顺序结构还是比较简单的,顺序结构图如下。         二、选择结构        选择结构也称之为分支结构,在程序中可以有选择性的执行程序,例如:在登录操作中,如果登...

2019-01-17 08:33:12 332

原创 第二章(2)、java基础语法-运算符

 前面讲述了java的数据类型,那么本节将讲述如何定义java数据类型和运算符。运算符就是用来操作数据的符号,数据间可以进行加减乘除等操作,算数符的分类有:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符,下面一一讲述运算符在java中的运算符在程序中是如何运用一、算数运算符        算数运算符:+、-、*、/、%、++、-- 等符号。        1)算符...

2019-01-16 21:49:46 249

原创 第二章(1)、java基础语法关键字和数据类型

        前面一章讲述了java的概述、JDK安装和第一个java程序,在编写java程序的时候使用了常用的DOS命令及编译和运行java程序,编译java文件会产生一个.class(字节码)文件,运行的时候就是运行这个.class文件。接下来的这一章节开始讲述java的基础语法。        一、关键字        1)是java语言定义的、被赋予指定含义的英文单词称为关键字,...

2019-01-16 08:39:48 293

原创 第一章(2)、第一个java程序

      前面介绍了java的基本信息及JDK的安装,本节将开始编写第一个java 程序。     编写代码工具有笔记本和idea,笔记本推荐使用NotePad++,idea有多种(Eclipse、ideaIU等),今天先使用笔记本来写第一个java程序,后面使用idea开发工具编写。使用笔记本编写代码需要用到DOS命令窗口,这就需要熟悉dos命令。首先按 Windows+R 键,弹出一个窗...

2019-01-15 17:18:19 181

原创 第一章(1)、java概述及jdk安装

1.1、java概述Java由Sun Microsystems公司于1995年5月推出;2009年Oracle公司宣布正式收购Sun公司,Java商标从此正式归Oracle所有;Java不仅仅是一门编程语言,同时也是一个技术平台;Java技术分为三个版本:JavaSE、JavaEE、JavaMEJavaSE(Java Standard Edition):java标准版,是其它版本的核心基础,...

2019-01-15 08:35:39 144

空空如也

空空如也

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

TA关注的人

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