自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 maven项目搭建dubbo的消费者和生产者

生产者: pom.xml需要依赖的:properties> spring.version>3.2.4.RELEASEspring.version>properties>dependencies> dependency> groupId>com.alibabagroupId> artifactId>dubboartifac

2017-08-04 22:24:52 2952

转载 mybatis拦截器的注解说明

@Intercepts( { @Signature(type = Executor.class,method = "query", args = {MappedStatement.class, Object.class, RowBounds.class,ResultHandler.class  ) })type:表示拦截的类,这里是Executor的实现类method:表示拦截

2017-08-24 11:00:47 6376

转载 【MyBatis源码分析】insert方法、update方法、delete方法处理流程(下篇)

Configuration的newStatementHandler分析SimpleExecutor的doUpdate方法上文有分析过: 1 public int doUpdate(MappedStatement ms, Object parameter) throws SQLException { 2 Statement stmt = null; 3 try {

2017-08-24 10:53:12 412

转载 MyBatis7:MyBatis插件及示例----打印每条SQL语句及其执行时间

Plugins摘一段来自MyBatis官方文档的文字。MyBatis允许你在某一点拦截已映射语句执行的调用。默认情况下,MyBatis允许使用插件来拦截方法调用Executor(update、query、flushStatements、commint、rollback、getTransaction、close、isClosed)ParameterHandler(getParamet

2017-08-24 10:50:45 302

转载 【MyBatis源码分析】select源码分析及小结

示例代码之前的文章说过,对于MyBatis来说insert、update、delete是一组的,因为对于MyBatis来说它们都是update;select是一组的,因为对于MyBatis来说它就是select。本文研究一下select的实现流程,示例代码为: 1 public void testSelectOne() { 2 System.out.println(mai

2017-08-24 10:49:04 314

转载 【MyBatis源码分析】插件实现原理

MyBatis插件原理----从解析开始本文分析一下MyBatis的插件实现原理,在此之前,如果对MyBatis插件不是很熟悉的朋友,可参看此文MyBatis7:MyBatis插件及示例----打印每条SQL语句及其执行时间,本文我以一个例子说明了MyBatis插件是什么以及如何实现。由于MyBatis的插件已经深入到了MyBatis底层代码,因此要更好地使用插件,必须对插件实现原理及My

2017-08-24 10:47:19 314

转载 mybatis的分页插件pageHelper

好多天没写博客了,因为最近在实习,大部分时间在熟悉实习相关的东西,也没有怎么学习新的东西,这周末学习了MyBatis的一个分页插件PageHelper,虽然没有那么的强大(我在最后会说明它的缺点),但还是挺不错的。这篇博文主要来总结下如何使用PageHelper。   我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。但是一旦mode

2017-08-24 10:09:34 446

转载 MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析

我们以往使用ibatis或者mybatis 都是以这种方式调用XML当中定义的CRUD标签来执行SQL 比如这样xml version="1.0" encoding="UTF-8" ?>DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-map

2017-08-24 09:47:00 300

转载 Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring

Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到SpringMybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理. 例如bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"

2017-08-24 09:45:16 309

转载 Mybatis SqlSessionTemplate 源码解析

Mybatis SqlSessionTemplate 源码解析在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。  bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> constructor-arg index=

2017-08-24 09:43:05 297

转载 Mybatis Interceptor 拦截器原理 源码分析

Mybatis Interceptor 拦截器原理 源码分析Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。代理链的生成Mybatis支持对Executor、StatementHan

2017-08-24 09:41:53 297

转载 Mybatis中ObjectFactory自定义实现

关于在MyBatis中的ObjectFactory有什么用,在官方文档中有这样的描述(大多数网上的博客都是直接引用这一描述):MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建

2017-08-23 21:14:51 1618

转载 使用Xpath递归输出所有数据

public class TestMain { public static void main(String[] args) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder =

2017-08-23 07:17:03 1545

转载 XPath路径表达式

XPath是万维网联盟(W3C)的官方推荐。它定义了一个语言在XML文件中查找信息。它被用于遍历XML文档的元素和属性。 XPath提供各种类型,可用于从XML文档查询相关的信息表现形式。什么是XPath?结构定义 - XPath定义像元素,属性,文本,命名空间,处理指令,注释和文档节点的XML文档部分路径表达式 - XPath提供了强大的路径表达式选择的节点或在XML文档

2017-08-23 07:14:13 4338

转载 使用Xpath读取xml文件

使用XPath的步骤以下是使用XPath解析器在解析文档时使用的步骤。导入XML相关的软件包。创建DocumentBuilder从文件或数据流创建一个文档创建XPath对象和XPath的路径表达式编译XPath表达式使用XPath.compile() ,并由XPath.evaluate()评估计算获得一个节点列表遍历节点列表。检查属性

2017-08-23 07:12:49 877

转载 mybatis中自定义ObjectFactory

关于在MyBatis中的ObjectFactory有什么用,在官方文档中有这样的描述(大多数网上的博客都是直接引用这一描述):MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建

2017-08-23 06:42:05 424

转载 Mybatis SqlSessionTemplate 源码解析

Mybatis SqlSessionTemplate 源码解析在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。  bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> constructor-arg index=

2017-08-22 15:10:59 248

转载 tomcat使用https

一.  创建tomcat证书 这里使用JDK自带的keytool工具来生成证书: 1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe  2. 在命令行中输入以下命令:keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "g:\

2017-08-22 14:36:22 255

转载 mybaits中一级和二级缓存的使用

MyBatis缓存我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某些场景下可以大大提升查询效率。MyBatis的缓存分为两种:一级缓存,一级缓存

2017-08-22 11:34:48 474

转载 Mybatis源码解析-MapperRegistry注册mapper接口

知识储备SqlsessionFactory-mybatis持久层操作数据的根本,具体的解析是通过SqlSessionFactoryBean生成的,具体的形成可见>>>Spring mybatis源码篇章-SqlSessionFactoryBeanMapperInterface-mybatis的java接口类,用于service/controller层的调用,具体的解析是通过Mapper

2017-08-22 11:32:24 910

转载 MyBatis源码分析:如何解析配置文件

MyBatis可以使用xml或者注解的方式进行配置,不管是哪种方式,最终会将获取到的配置参数设置到Configuration类中,例如,SqlSessionFactoryBuilder类中就是通过解析XML来创建Configuration。public SqlSessionFactory build(InputStream inputStream, String environment,

2017-08-22 11:19:33 314

转载 mybatis中加载mapper文件

这一章我们来看看mybatis是怎么读取mapper的xml配置文件并解析其中的sql语句。    我们还记得是这样配置sqlSessionFactory的:[java] view plain copy"sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

2017-08-22 11:16:03 5167

原创 采用dom4j解析所有的元素并打印和保存到内存中

public class XMLParser { private Document document; public XMLParser(String filePath){ //从当前source目录下读取文件 InputStream inputStream = this.getClass().getClassLoader().getResource

2017-08-22 10:47:02 558

转载 dom4j操作xml文档

要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的

2017-08-22 10:29:26 263

转载 MyBatis源码分析(1)-MapConfig文件的解析

MyBatis源码分析(1)-MapConfig文件的解析1.简述   MyBatis是一个优秀的轻ORM框架,由最初的iBatis演化而来,可以方便的完成sql语句的输入输出到java对象之间的相互映射,典型的MyBatis使用的方式如下:String resource = "org/mybatis/example/mybatis-config.xml";Inp

2017-08-22 09:05:48 504

转载 idea中查看方法的调用链

Eclipse的"Call Hierarchy"可以查看一个Java方法或类成员变量的调用树(caller和callee两个方向),非常方便。 在IDEA中类似功能被划分到了三个命令。 IntelliJ IDEA中可以在主菜单中选择Navigate | Call Hierarchy命令查看一个Java方法调用树(caller和callee两个方向),但是不像Eclipse那样可

2017-08-22 06:56:56 108250 5

转载 mybaits使用注意点

在项目开发中,本人使用Integer类型字段时不小心加了是否为空字符串判断,产生的结果时当那个字段为0时它就会变为""所有mybaits中的判断如果为Integer类型就不要判断是否为空字符串

2017-08-21 14:04:59 252

转载 使用netty开发私有栈协议

基于Netty的私有协议栈的开发书是人类进步的阶梯,每读一本书都使自己得以提升,以前看书都是看了就看了,当时感觉受益匪浅,时间一长就又还回到书本了!所以说,好记性不如烂笔头,以后每次看完一本书都写一些读后感,对于技术书则把对让自己醍醐灌顶的篇章记录下来,以便以后翻阅查看,也是记录自己学习的过程- _ -。OK!言归正传,最近由于公司需要做一个网关项目,需要用到基于TCP/IP私有协

2017-08-21 06:50:51 724

转载 jquery中的html()方法和append()使用注意点

最近做个项目是点击上传文件动态添加上传文件控件,我开始使用html函数,我首先是获取那个div的html然后再追加上去。其结果是上一个文件选择的内容无法获取解决办法使用append就可以做了

2017-08-18 10:51:12 3265

转载 netty实现websocket

现在网上网站为了实现推送基本都采用轮询的方式,比较新的轮询技术是comet,采用ajax,但是还是得发送请求,为了解决html效率低下的问题,html5定义了websocket协议。服务端代码:import java.util.concurrent.TimeUnit;import org.apache.activemq.util.TimeUtils;import io.

2017-08-17 22:42:37 386

转载 使用SpringMVC和js实现文件及字段上传中遇到的坑

界面代码:                                                                                                                      后台代码:class TestBean{   private MultipartFil

2017-08-17 18:19:31 564

转载 post400报Bad Request

问题描述:用ajax请求时报post 400 (Bad Request)的异常,前台js参数JSON.stringify(data),后台controller 中@RequestBody XX xx(javabean)接收参数。通常发生400时,即使在后台方法上设置断点,但因400是参数由json转换成Javabean时发生异常,所以不会进入断点。此时如果单

2017-08-17 17:38:20 2343

转载 使用js显示本地图片

如梦技术IT-图片上传预览          ">//图片预览,兼容各个浏览器function previewImage(file) {   var porImg  = $(file),       viewImg = $('#viewImg');   var image = porImg.val();   if (!

2017-08-17 11:15:05 3791

转载 spring扩展schema文件

spring我们在开发过程中是个必不可少的框架,我们通常会将我们程序中的bean交由spring容器来进行管理,应用程序需要用到bean的时候从spring容器中去获取,spring是如何实现这种方式的呢?spring的配置文件,当我们在开发的过程中发现spring提供的配置命令不满足的情况下我们该怎么办呢?我们是不是要自己去解析原生的xml文件?当然不用spring为开发者提供了可扩展的sche

2017-08-16 22:10:54 387

转载 Netty 实现HTTP文件服务器

Netty 实现HTTP文件服务器一,需求文件服务器使用HTTP协议对外提供服务。用户通过浏览器访问文件服务器,首先对URL进行检查,若失败返回403错误;若通过校验,以链接的方式打开当前目录,每个目录或文件都以超链接的形式展现,可递归访问,并下载文件。 二,关键实现代码①文件服务器启动类需要添加的通道处理器如下:@Override

2017-08-16 21:39:27 835

转载 使用netty和messagepack编写网络请求

在我们使用Netty开发基于网络的应用程序的时候,你都需要实现一些符合自己应用的codec,在Netty中也提供了很多种编解码的实现,在实现自定义编解码器的时候,我们只需要继承相关接口后,重写部分方法就可以实现decode和encode。例如在我们继承了ByteToMessageDecoder 类后只需要重写decode()方法就可以实现解码。在学习Netty的过程中我实现了一个编解码的d

2017-08-16 20:24:58 634

转载 LengthFieldBasedFrameDecoder和LengthFieldPrepender

/** * Creates a new instance. * * @param maxFrameLength * the maximum length of the frame. If the length of the frame is * greater than this value, {@link TooLongFrameException} wi

2017-08-15 23:04:38 384

转载 MessagePack使用

在使用MessagePack是主要注意点是要在pojo上添加@Message注解不然就会报错。如果是在netty中就无法发送数据 MessagePack pack = new MessagePack(); Student student = new Student(); student.setUserName("啦啦啦"); student.setGender("男"); stud

2017-08-15 21:27:59 1312

转载 编解码技术

1. 背景1.1. 编解码技术通常我们也习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输、数据持久化或者其它用途。反之,解码(Decode)/反序列化(deserialization)把从网络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷贝),以方便后续的业务逻辑操作。进行远程跨进程服务调用时(例如

2017-08-14 23:10:48 5404 1

转载 java中获取运行路径

1、利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2、使用File提供的函数获取当前路径: File directory = new File("");//设定为当前文件夹 try{     System.out.pr

2017-08-13 19:44:37 3020

java性能权威指南高清

java进阶必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻

2018-12-28

kafka源码解析与实战

kafka高级进阶必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻

2018-12-28

深入java内存模型

java进行必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻

2018-12-28

jvm和gc详解及调优

java进阶必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻

2018-12-28

阿里巴巴java开发手册

java入门必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻

2018-12-28

mysql高性能高清版

mysql进阶必读书籍,高清版带书签方便阅读。最新中文版

2018-12-28

java实现走迷宫

java实现走迷宫

2016-03-14

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

TA关注的人

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