自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 资源 (7)
  • 论坛 (1)

原创 java-calendar常用方法和注意事项

介绍Calendar是java提供的一个可以操作日历的抽象类。默认实现是GregorianCalendar。可以和Date结合使用,用来获取当前时间是星期几、月份、一年第多少天等操作。后面介绍也会介绍几个常用场景的方法字段介绍这里介绍Calendar的常用字段。YEAR、MONTH等。直接通过代码我们可以更直观知道意思。 Calendar calendar = Calendar.getInstance(); calendar.setTime(getDate("2020-06-21

2020-06-21 18:50:13 71

原创 redis单机实现分布式锁

单节点redis下分布式锁。原理:使用setnx,设置成功返回1,失败返回0,由于redis也是单线程的,所以一次只能有一个线程获取成功。程序异常情况:设置超时时间,避免程序挂掉锁无法释放。执行超时情况:为避免代码运行时间超过key设置的超时时间,从而释放了其他进程的锁问题。需要保存当前线程的value。在释放之前先检查key设置的value是否跟当前相等,类似CAS的思想,比较再删除。...

2019-08-11 23:20:14 108

原创 mybatis源码解析十三之MappedStatement

介绍MappedStatement类在Mybatis框架中用于表示XML文件中一个sql语句节点,即一个、或者标签。Mybatis框架在初始化阶段会对XML配置文件进行读取,将其中的sql语句节点对象化为一个个MappedStatement对象。若是使用注解,则类似注解中的@Select等描述。public final class MappedStatement {//节点中的i...

2018-08-12 23:35:17 3687 1

原创 Springboot+vue搭建后台管理系统(二)-处理网络请求

介绍上一节只是创建的简单的前端界面。在这一部分,介绍如何在vue中发送网络请求给后端。axios介绍在这里使用axios发送前端网络请求。 axios是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端. 官网安装配置npm install axios使用示例在官网也有。使用在这里使用封装后的axios 参考: https:...

2018-08-06 00:15:08 5652

原创 SpringBoot+vue 项目搭建

背景虽然vue 和Springboot出来很久了,但是自己在当时刚入门的时候还是遇到过很多问题。这里通过创建后台系统管理项目为背景,一步步使用vue和spingboot搭建,希望可以帮助入门同学快速使用vue和Springboot开发项目。在这里不介绍一些关键vue语法,语法可以参考 - vue官网 - vue-router路由官网 - UI-Element官网vue使用创建...

2018-08-05 21:11:38 4423

原创 Mybatis源码解析十二之ParameterHandler

介绍ParameterHandler是在SatementHandler执行prepared比如预编译SQL后,设置参数时使用的类接口ParameterHandler也只是一个接口public interface ParameterHandler { Object getParameterObject(); void setParameters(PreparedS...

2018-08-05 14:17:10 472

原创 Mybatis源码解析十一 之StatementHandler

介绍四大对象:executor, statementHandler,parameterHandler,resultHandler对象。statementHandler是四大对象中最重要的一个,它的功能是使用parameterHandler为我们绑定Sql参数,然后和数据库对话,然后使用resultHandler对象 组装最后的结果返回。下面主要分一下StatementHandler一些...

2018-08-05 13:53:08 937

原创 java 工作流引擎调研总结

工作流基础概念 术语Activity工作流 –java运用几大工作流引擎对比activiti和jbmp对比-深入了解jBPM5与Activiti之间的差异对比csdn-JBPM(二)—JBPM工作流基本操作Springboot +activitiactiviti 入门系列jbmp入门总结 工作流定义:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触...

2018-07-31 22:35:51 5728

原创 Mybatis源码解析十之Cache接口及相关实现分析

Cache接口简介org.apache.ibatis.cache.Cache是MyBatis的缓存接口,想要实现自定义的缓存需要实现这个接口。public interface Cache { String getId(); void putObject(Object key, Object value); Object getObject(Object key);...

2018-07-30 23:21:25 675

原创 Myabtis 源码解析九-简单介绍SqlsessionManager

介绍从下面的继承关系可以看出,SqlSeessionManage是对SqlSessionFactory, SqlSession的封装,或者是对SqlSessionFactory的封装public class SqlSessionManager implements SqlSessionFactory, SqlSession 从mybatis目前的提供官方文档来看,似乎该类已被弃...

2018-07-15 10:31:54 909

原创 Mybatis源码解析七之-拦截器

介绍Mybatis提供插件(plugin)功能,在实际中一般称为拦截器。可以拦截的方法如下:Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed):拦截执行器的方法ParameterHandler (getParameterObject, setPa...

2018-07-15 10:27:26 252

原创 Mybatis源码分析六之Configration

介绍Configuration保存了所有Myabtis中的配置,包括两部分 - mybaits-config.xml - UserMapper.xml中所有配置信息都可以在Configruation对象中找到相应的信息。Configration.java从mybati-config.xml中加载的配置public class Configuration {prot...

2018-07-15 10:24:28 132

原创 Mybatis-源码解析五 创建sqlSession对话

简介mybatis的会话,是项目与数据库之间的会话,类似于客户端与服务器之间的会话(session),这个SqlSession的生命周期是方法级的,因为他是非线程安全的,针对每一次数据库访问都要创建一个SqlSession,获取到返回结果之后,这个SqlSession就会被废弃。这区别于SqlSessionFactory的生命周期。每个SqlSession新建之后必须释放,不然会造成数据库...

2018-07-01 18:06:53 147

原创 Mybatis-源码解析四-创建sesstion工厂DefaultSqlSessionFactory

SqlSeetionFactory 简介该接口是会话工厂,是用来生产会话的工厂接口,DefaultSqlSessionFactory是其实现类,是真正生产会话的工厂类,这个类的实例的生命周期是全局的,它只会在首次调用时生成一个实例(单例模式),就一直存在直到服务器关闭。默认实现SqlSeetionFactory只是接口,具体实现在SqlSessionFactoryBuilder中可...

2018-07-01 18:04:57 333

原创 myabtis源码解析三-解析配置文件类XMLConfigBuilder

介绍该类是XML配置构建者类,是用来通过XML配置文件来构建Configuration对象实例,构建的过程就是解析Configuration.xml配置文件的过程,期间会将从配置文件中获取到的指定标签的值逐个添加到之前创建好的默认Configuration对象实例中。在SqlSessionFactoryBuilder中调用XMLConfigBuilderpublic SqlSess...

2018-07-01 18:03:39 371

原创 java8的stream操作- 整理版

整理一下网上 使用java8的stream的一些使用经验。扩展一下自己使用的范围。哈哈实际例子,抽取List 中的id得到ListList<Long> llist= list.stream().map(item->item.getId()).distinct().collect(Collectors.toList());或者List<Long>...

2018-06-28 20:31:56 793

原创 Mybatis之 ${}和#{}区别及动态传入表名

动态传入表名#和$区别{}#能防止sql注入,$不能$方式一般用于传入数据库对象,例如传入表名.MyBatis排序时使用order by 动态参数时需要注意,用$而不是#传入值是引用,而$是其本身:id = 1, select #{id} from tablename -> select 1 from tablename(引用) id = 1, selec...

2018-05-31 23:27:26 1956

原创 Zookeeper使用及对应java api使用

官方文档-配置和cmd下操作命令官方文档-java接口配置创建默认配置文件zoo.cfg内容如下tickTime=2000dataDir=/var/lib/zookeeperclientPort=2181启动服务器命令bin/zkServer.sh start常用命令ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过...

2018-05-18 21:53:47 564

原创 Mybatis源码解析(二) - sql执行总体流程

执行流程Configuration.xml:该配置文件是MyBatis的全局配置文件,在这个文件中可以配置诸多项目,但是一般项目中,并不会配置太多内容,常用的内容是别名设置,拦截器设置等,至于环境设置与Mapper映射文件的注册会转移到Spring配置文件中(SSM整合之后),而其余大部分的配置项都采用默认的配置。XMLConfigBuilder:该类是XML配置构建者类,是用来通过X...

2018-04-07 23:08:06 208

原创 Mybatis源码解析(一)-入门Demo

实验代码public class MyApp { private static SqlSessionFactory sqlsessionfactory;//存储SqlSessionFactory 对象 static { //设置配置路径,mybitis是以SqlMapConfig.xml为主路径。因为SqlMapConfig中的mapper关联了user....

2018-04-07 23:06:42 263

原创 Logback-将error日志统一输出到一个文件配置原理

根据Demo改编而来<?xml version="1.0" encoding="UTF-8"?><!-- scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。 当scan为true...

2018-04-03 20:04:20 6177

转载 MySQL索引背后的数据结构及算法原理

转载摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容

2018-02-06 10:16:30 183

原创 java 注解详解+示例

注解介绍1.5开始引入注解可以理解为一种描述数据的数据,或者可以称为一种描述元数据的方法。java提供的默认注解:@Override,@Deprecated。注解仅仅是元数据,和业务逻辑无关定义方法在 java.lang.annotation包中元注解java提供4中元注解来定义我们的注解 1. @Target, 2. @Retention, 3. @Documented, 4.

2017-12-31 12:00:39 1456

原创 多线程系列十二-线程池

java线程池线程池最大的作用就是可以服用线程池,减少线程重复创建等的时间开销Executors默认提供线程池newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。大小无界限(Integer.MAX_VALUE)。常用用于短期异步任务newFixedThreadPool(nThread) 创建一个定长线程池,可控制线程

2017-12-27 19:27:10 149 2

原创 多线程系列十一-同步CountDownLatch、CyclicBarrier和Semaphore

CountDownLatch、CyclicBarrier和Semaphore除了使用wait、notify等实现并发线程同步外,jdk还提供了CountDownLatch、CyclicBarrier和Semaphore三个帮助类。CountDownLatch介绍:实现1个任务等待其他任务完毕之后才执行常用方法:countDown()和await()。通常两个方法需要配合使用。只有当countDo

2017-12-27 19:26:40 140

原创 多线程系列十-单例模式和多线程

饿汗模式方法调用前就加载public class HungrySingleton { private static HungrySingleton singleton=new HungrySingleton(); private HungrySingleton(){ } public static HungrySingleton getSingleton(){

2017-12-27 19:26:01 116

原创 多线程系列九-lock

Lock是java.util.concurrent.locks包下常用类。Lock只是一个接口public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time,

2017-12-27 19:25:21 115

原创 多线程系列八-ThreadLocal

ThreadLocal用于实现每个线程都有自己的共享变量。即隔离线程中的变量。示例public class ThreadLocalTest { private static ThreadLocal threadLocal = new ThreadLocal(); private static class MythreadA extends Thread { privat

2017-12-27 19:24:46 118

原创 多线程系列七-线程间通信-join

join主线程启动子线程,需要等待子线程结束后,主线程才结束,这个时候可以用join。 - 可以调用join(long)设定等待时间 示例:public class JoinTest { private static class MythreadA extends Thread { private Object object; @Override

2017-12-27 19:24:12 95

原创 多线程系列六-线程间通信 wait和notify、threadlocal等

线程通信线程是系统的个体,线程想要构成一个整体,就需要线程间通信。使用wait和notify可以实现线程间通信。wait和notifywait和notify是Object的方法。他们都涉及到锁相关操作 - wait:等待对象的同步锁,需要获得该对象的同步锁才可以调用这个方法,否则编译可以通过,但运行时会收到一个异常:IllegalMonitorStateException。所以只能在同步方法或者同

2017-12-27 19:23:31 162

原创 多线程系列五-volatile关键字

volatile关键字是用来修饰变量。主要作用是 - 保证变量在多个线程间可见。 - volatile同时能防止指令重排 但是它不支持原子性,多线程访问volatile不会发生阻塞。参考http://blog.csdn.net/jiyiqinlovexx/article/details/50989328

2017-12-27 19:22:47 112

原创 多线程系列四-同步-Synchronized

synchronized 介绍synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 3. 修改静态的方法,其作用的范围是整个静态方法,作

2017-12-21 23:31:27 107

原创 多线程系列三-线程常用方法

获取当前线程 :currentThread()该方法返回执行currentThread()这个方法当前线程的信息(返回的是Thread实例)。使用这个方法可以获取线程的名称等; 下面来看一下比较复杂的例子:public class ThreadMethodTest { private static class MyThread extends Thread{ public

2017-12-21 23:30:53 121

原创 多线程系列二 线程创建

java线程创建java 中有两种创建线程方法:继承Thread类和实现Runnable接口.实现Thread类线程创建:class MyThread extends Thread{ @Override public void run() { System.out.println("MyThread"); } }调

2017-12-21 23:30:13 103

原创 多线程系列一 进程和线程基本概念

最近在整理一些之前看过的多线程的东西,发现内容还蛮多,这里正好乘这个机会都整理一下。进程和线程概念进程:java中的进程概念和操作系统的进程概念是一样:一个程序就是一个进程,这个在windows的务管理器上面可以形象的看到。 - 在java中与进程有直接关系的抽象类 Java.lang.Process。对应实现为 ProcessImpl 类。 - 如果用户创建了一个进程,那么肯定会伴随着一个新的

2017-12-21 23:29:03 137

原创 《大数据架构商业之路 从业务需求到技术方案》阅读笔记

1 本书以菜鸟和老司机对话的方式,以O2O互联网创业故事为背景。从基础业务需求出发,逐步介绍了不同场景下需要使用的和大数据架构中的相关技术。本书涉及到了很多大数据相关的技术。很多都是我们平时业务开发过程中需要用到的技术。2 主要包括:数据挖掘、机器学习商业智能等。 本书简单易懂 虽然有技术内容,但是讲讲都不是特别深,比较容易理解。3 对于有一些技术基础的读者,读起来会很顺畅。通过阅读这本书可以帮助指

2017-12-07 20:42:23 723

原创 《Storm 入门》笔记及总结

Storm 读书笔记本书主要是翻译了《Getting Started With Storm》。通过一个简单的单词分析和统计的例子,作为入门例子介绍Storm。Storm 介绍Storm 是由twitter开发,并贡献给了apache。Storm,是一个分布式的,可靠的,容错的数据流处理系统。为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。三个核心组件简介:使用者

2017-11-13 20:16:47 190

原创 ElasticSearch新增IK扩展词后,让历史数据生效方法

问题描述IK是ES的中文分词插件。在IK新增热词后,不会去更新历史数据,即新添加的热词只对后续的数据生效。而实际上我们常常需要对历史数据进行更新。解决办法使用ES自己提供的update_by_query接口。调用接口:http://127.0.0.1:9200/index*/_update_by_query?conflicts=proceed 可以指定多个索引多个type。 http://12

2017-11-12 21:15:37 4779 5

原创 《大型分布式网站价格设计与实践》读书笔记

一个大型的往往会涉及非常多方面技术的融合。从这本书里面,就可以基本了解到一个网站中涉及到的技术的方方面面。在第2章 分布式系统基础设施中,就列举了一个大型网站需要的一些基础技术:分布式缓存(memecached),包括分布式session,即将session统一存储在缓存集群上。持久化存储(mysql,HBase,redis).消息系统。(ActiveMQ),现在貌似使用最广泛的是kafka或

2017-11-05 16:46:03 1459

原创 ES 和influxdb那些事

简介最近一直在使用ES,之前也使用过influxdb。使用过程中两者在某些功能上有些类似。所以这里对两者一些区别和功能进行整理。已更好了解这两者工具。ES和influxdb介绍ES 是一个基于lucence的实时搜索服务器,本身是一个应用。没有UI管理界面。支持restful格式http接口来操作和展示界面,数据展示依靠Kibana。influxdb 开源分布式时序、事件和指标数据库

2017-11-04 23:08:37 5753

jacORB 2.3.1 编程指导

jacORB 2.3.1 编程指导 此书是英文版的。

2012-05-18

JacORB14ProgrammingGuide-Chines

JacORB14ProgrammingGuide-Chines 编程开发

2012-05-18

oracle一些入门书籍

oracle一些入门书籍 适合初学者~ 里面有3本入门书籍 一本是英文的

2011-10-16

FCKeditor_2.6.6

FCKeditor_2.6.6 最新版的

2010-03-14

Couchbase Developer's Guide 开发指南2.0.pdf.zip

Couchbase Developer's Guide 2.0 英文版的哦,总共140多页,欢迎下载

2019-08-04

《JavaEE开发的颠覆者: Spring Boot

JavaEE开发的颠覆者 Spring Boot实战 源码.zip 别人要5分 我只要2分。不能设置1分么

2017-10-22

Android编程权威指南

The BigNerd Ranch Guide

2015-01-28

求struts2.1权威指南电子版下载地址

发表于 2011-08-16 最后回复 2011-08-16

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