`
blue2048
  • 浏览: 183053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

http报头

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接    1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。    2.请求头标:允许客户端传递关于自身的信息和希望的响 ...
转自 http://www.cnblogs.com/ITtangtang/p/3978349.html#a4   Spring:源码解读Spring IOC原理   Spring IOC设计原理解析:本文乃学习整理参考而来

jvm 调优

转自 http://blog.csdn.net/jiangguilong2000/article/details/14606685   最近开始优化页游服务端的性能,一些心得总结一下。现在的服务器硬件越来越好,几十G内存,十几个CPU。当硬件不是瓶颈的时候,如果让程序发挥最大效用就成了我们 ...
转自 http://blog.csdn.net/hupanfeng/article/details/9265341   Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量和limit取结果),在大数据量的情况下这样的分页基本上是没有用的。本文基于插件,通过拦截StatementHandler重写sql语句,实现数据库的物理分页。本文适配的mybatis版本是3.2.2。 准备 为什么在StatementHandler拦截 在深入浅出MyBatis-Sqlsession章节介绍了一次sqlsession的完整执行过程,从中可以知道sql的解析是在Statem ...
转自 http://blog.csdn.net/hupanfeng/article/details/9320665   本文提供了一种自动生成sql语句的方法,它针对的对象是有主键或唯一索引的单表,提供的操作有增、删、改、查4种。理解本文和本文的提供的代码需要有java注解的知识,因为本文是基于注解生成sql的。本文适配的mybatis版本是3.2.2。 准备 为什么在StatementHandler拦截 在深入浅出MyBatis-Sqlsession章节介绍了一次sqlsession的完整执行过程,从中可以知道sql的解析是在StatementHandler里完成的,所以为了 ...
转自 http://blog.csdn.net/hupanfeng/article/details/16950161   为了方便修改BUG,我在github上创建了一个仓库,地址:https://github.com/hupanfeng/hdd。欢迎大家在留言里提交问题,我会尽快修复,并将修复的代码提交至github上。   在前面的文章里,我开发了两个插件:根据注解实现的sql自动生成插件和分页插件。这两个插件在没有开启cache的情况下可以很好的使用,但开启cache后却出现了一些问题,为了解决这些问题,我编写了拦截cache的插件,通过这个拦截器修正了这些问题。 问题 ...
转自 http://blog.csdn.net/hupanfeng/article/details/21454847   单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用。 前置要求 版本要求 项目 版本 下载地址 说明 mybatis 3.0及以上 https://github.com/mybatis/mybatis-3/releases   sp ...
转自 http://blog.csdn.net/hupanfeng/article/details/9247379   Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。 代理链的生成 Mybatis支持对Executor、StatementHandler、PameterHandler和ResultSetHandler进行拦截,也就是说会对这4种对象进行代理。下面以Executor为例。Myba ...
转自 http://blog.csdn.net/hupanfeng/article/details/9238127   前面的章节主要讲mybatis如何解析配置文件,这些都是一次性的过程。从本章开始讲解动态的过程,它们跟应用程序对mybatis的调用密切相关。本章先从sqlsession开始。 创建 正如其名,Sqlsession对应着一次数据库会话。由于数据库回话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在Sqlsession里只能执行一次sql,你可以执行多次,当一旦关闭了Sqlsession就需要重新创 ...
转自 http://blog.csdn.net/hupanfeng/article/details/9098453   上一章节说道,解析mybatis的配置文件的最后一步是解析mapper元素。每个mapper元素对应一个mapper配置文件,这一章节就来讲讲这个mapper配置文件是如何解析的。 Mapper文件里有什么 mapper配置文件是配置sql映射的地方,它看起来就像下面这个样子:   [html] view plaincopy  
转自 http://blog.csdn.net/hupanfeng/article/details/9080545   Configuration是干嘛的 Configuration就像是Mybatis的总管,Mybatis的所有配置信息都存放在这里,此外,它还提供了设置这些配置信息的方法。Configuration可以从配置文件里获取属性值,也可以通过程序直接设置。Configuration里可供配置的属性有: 1.       properties属性 1)       配置示例 [html] view plaincopy
转自 http://blog.csdn.net/hupanfeng/article/details/9068003 简介 MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java O ...
spring将事务和底层数据库操作分离,产生两个问题 第一个问题,事务代码的抽离; 第二个问题,数据连接的统一; 前面分析了第一个问题,现在看看第二个问题。 JDBC,事务的是附着在Connection对象上的,Connection对象同事是insert,update,delete数据库操作的对象,事务和操作数据库的Connection必须是同一个,才能起作用 在spring事务框架中,我们看看是如何统一的。   首先在开启JDBC事务时,需要获得JDBC链接,可以看到获取newCon后,DataSourceTransactionManager将newCon以datasourc ...
在spring的事务运行过程中,需要保存一些状态,涉及的一些对象如下 1. TransactionSynchronizationManager 2. SuspendedResourcesHolder 3. DefaultTransactionStatus   底层以JDBC DataSourceTransactionManager为例,状态对象 1. DataSourceTransactionObject 2. ConnectionHolder   下面逐一进行分析说明  TransactionSynchronizationManager-使用TreadLocal记录事务 ...
首先介绍下DataSourceTransactionObject这个类,它是DataSourceTransactionManager的事务句柄,用于和AbstractPlatformTransactionManager接口方法之间的交互数据传递  下面介绍DataSourceTransactionManager各个方法,解析见注释 1.  doGetTransaction //产生一个DataSourceTransactionObject对象,其中持有ConnectionHolder(从ThreadLocale中拿,可能已经存在这个对象) protected Object doGet ...
Global site tag (gtag.js) - Google Analytics