<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qiangcai的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qiangcai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qiangcai]]></copyright><item><title><![CDATA[dubbo之SPI解析]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/77750541</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/77750541</guid><author>qiangcai</author><pubDate>Thu, 31 Aug 2017 18:08:27 +0800</pubDate><description><![CDATA[一 概述
   一大早来上班，准备写优快云博客，发现前面的文章下有人评价，有点欣喜，有点安慰。算是对我这段时间作品的回报和我前进的动力吧！继续写吧.. 前面阅读dubbo源码经常看到Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();    这种类型的代码来获]]></description><category></category></item><item><title><![CDATA[dubbo客户端]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/77581201</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/77581201</guid><author>qiangcai</author><pubDate>Fri, 25 Aug 2017 17:26:10 +0800</pubDate><description><![CDATA[一概述
    我们知道在spring整合dubbo以后，在spring容器中取客户端对象时通过关键字ID来获取，跟平常的取法一模一样。那么这章来分析下spring怎么把dubbo框架的客户端对象加载到spring容器中的，然后如何调用到远程服务器的真实的接口实现。



二初始化客户端配置

Spring在初始化IOC容器，通过DubboNamespaceHandler类来解析du]]></description><category></category></item><item><title><![CDATA[dubbo服务端之netty]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/77248127</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/77248127</guid><author>qiangcai</author><pubDate>Wed, 16 Aug 2017 17:19:28 +0800</pubDate><description><![CDATA[一概述
    上个章节已经描述了dubbo发布一个服务，但具体是如何发布服务只是粗略的描述了下，这里将深入描述服务发布时怎么样开启socket监听，即启动netty服务。

二开启netty服务
上一节发布服务的重点入口代码如下

	//通过proxyFactory对象生成接口实现类代理对象Invoker
	Invoker invoker = proxyFactory.getInvo]]></description><category></category></item><item><title><![CDATA[dubbo服务端之发布]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/73992080</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/73992080</guid><author>qiangcai</author><pubDate>Fri, 30 Jun 2017 14:28:44 +0800</pubDate><description><![CDATA[一概述
      最近由于公司业务减少，开始慢慢裁员了。程序猿们都已经清闲个把月了，不知道是不是过惯了忙碌的日子一下特别不舒服。被裁员可以拿到N+1的赔偿也是不错的哈！不知道下一个会不会是我，嘿嘿！上一节说到了如何自定义标签，今天说说dubbo的服务是如何发布出来的，研究了几天略有眉目。如果客观想看看，需要提前了解以下几个知识点：1.netty的使用，版本是3.x几的,  2. SPI技术的了]]></description><category></category></item><item><title><![CDATA[dubbo自定义标签]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/73739312</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/73739312</guid><author>qiangcai</author><pubDate>Mon, 26 Jun 2017 14:15:47 +0800</pubDate><description><![CDATA[概述
      最近想看看dubbo的实现原理，刚入手代码相关文档提到它与spring框架无缝对接，所以对里面的自定义标签有了兴趣。在spring的配置文件中也经常看到一些很特殊的标签比如spring的事物标签


xml标签Schema
   要写自己的标签肯定需要有xml的标签规范，所以需要一个schema文件，后缀是.xsd的文件。具体的规范如何编写可以参考http://www.]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(七)：执行servlet]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/72901115</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/72901115</guid><author>qiangcai</author><pubDate>Wed, 07 Jun 2017 17:15:26 +0800</pubDate><description><![CDATA[一 概述
  前面章节已经说到http的请求到达了管道处理。最后的一个管道是StandardWrapper中的管道，它最后的阀门是StandardWrapperValve，阀门中的invoke代码
主要做了两件事情：1.执行过滤器链，2调用http请求servlet的service方法。
二过滤器

这里再次贴下invoke中的代码，部分省略掉：


@Override
    p]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(六)：管道与阀机制]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/72821953</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/72821953</guid><author>qiangcai</author><pubDate>Wed, 31 May 2017 17:58:20 +0800</pubDate><description><![CDATA[一概述
     前一章节已经讲解到了tomcat把一次请求封装成了HttpServletRequest对象，接下来request对象会在关联的管道中流转，这里我们就看看这个request对象是如何在多个管道中跑来跑去的。


二阀原理


   这里我们接上一章节中的org.apache.catalina.connector.CoyoteAdapter类的service()方法]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(五)：http请求处理]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/72466626</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/72466626</guid><author>qiangcai</author><pubDate>Thu, 18 May 2017 14:29:29 +0800</pubDate><description><![CDATA[一概述


二http请求处理



三总结]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(四)：启动处理]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/70314748</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/70314748</guid><author>qiangcai</author><pubDate>Fri, 21 Apr 2017 14:47:33 +0800</pubDate><description><![CDATA[一 概述


二 tomcat启动处理


三 总结]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(三)：资源初始化]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/61917372</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/61917372</guid><author>qiangcai</author><pubDate>Mon, 13 Mar 2017 16:22:22 +0800</pubDate><description><![CDATA[一 概述
     孩子两岁了最近一直不爱吃饭，做什么好吃的她都不感兴趣！每天看着她吃饭心急如焚！情不自禁的在这里发了下牢骚！言归正传吧，前面我们详解了tomcat的整体架构，这里说说下tomcat的启动。
二 tomca启动处理
     在平时的编码中，我们启动一个功能都用main函数来启动。tomcat里面也一样，启动的入口也是mian函数。只是我们平时在使用时都是双击startup.]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(二)：整体架构]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/61192375</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/61192375</guid><author>qiangcai</author><pubDate>Mon, 13 Mar 2017 11:25:55 +0800</pubDate><description><![CDATA[一 整体结构
前面tomcat实现原理(一)里面描述了整个tomcat接受一个http请求的简单处理，这里面我们讲下整个tomcat的架构，以便对整体结构有宏观的了解。tomat里面由很多个组件结合在一起，主要有server,service,context,host,engine,wrapper,connector这7个组件来完成，当然了tomcat里面还有其它组件这里就不一一描述，我们只看重点]]></description><category></category></item><item><title><![CDATA[tomcat原理解析(一)：一个简单的实现]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/60583330</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/60583330</guid><author>qiangcai</author><pubDate>Tue, 07 Mar 2017 09:54:27 +0800</pubDate><description><![CDATA[一,概述
    前段时间去面试，被人问到了tomcat实现原理。由于平时没怎么关注容器的实现细节，这个问题基本没回答上来。所以最近花了很多时间一直在网上找资料和看tomcat的源码来研究里面处理一个HTTP请求的流程。
二 一个简单tomcat服务器实现
    tomat是一个servlet容器，来处理http请求。在平时的使用中我们都会再浏览器中输入http地址来访问服务资源，比如格式]]></description><category></category></item><item><title><![CDATA[cookie覆盖导致系统一直需要重复登录]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/50853728</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/50853728</guid><author>qiangcai</author><pubDate>Fri, 11 Mar 2016 10:52:09 +0800</pubDate><description><![CDATA[最近在发布web系统时，出现点了某个菜单后就要重新登录的问题，由于当时系统发布新版本，一时没有发现是什么问题导致该问题拖延了一段时间。根据现象个人感觉就是服务器session过期了，可是经过多次测试发现并非如此，一时不知道是什么问题，既然要重新登录肯定是服务器session不正确导致。
         启动火狐浏览器，分析后发现点击异常的菜单所带的sessionId与登录时获取的session]]></description><category></category></item><item><title><![CDATA[深入探索spring技术内幕(四): 剖析@Resource注解实现原理与注解注入]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/50220653</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/50220653</guid><author>qiangcai</author><pubDate>Tue, 08 Dec 2015 16:27:28 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/zdp072/article/details/25558563?utm_source=tuicool&utm_medium=referral]]></description><category></category></item><item><title><![CDATA[J8583CN解析ISO8583协议报文注意点]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/48464391</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/48464391</guid><author>qiangcai</author><pubDate>Tue, 15 Sep 2015 10:43:25 +0800</pubDate><description><![CDATA[最近在做POS接入涉及到如何正确解析ISO8583协议的问题，遇到了一些很讨厌的问题今天将他们总结一下写在博客中，供大家参考。
  1.对于小白首先要了解什么是ISO8583协议，请参考该文章http://www.itpub.net/thread-419521-1-1.html  讲解的非常详细。
  2.了解完ISO853协议以后，考虑用JAVA怎么解析8583协议报文。网上百度了下说到可以]]></description><category></category></item><item><title><![CDATA[设计模式（代理模式--动态代理）]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/47206603</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/47206603</guid><author>qiangcai</author><pubDate>Sun, 02 Aug 2015 13:20:24 +0800</pubDate><description><![CDATA[动态代理可以动态的实现所有接口，这是静态代理所不能胜任的。
前一章静态代理类固定实现了Imove接口，现在我们将该Imove接口类通过java的反射机制拿到所有接口，循环遍历其接口做实现如下面代码：
package com.study.proxy.real;


import java.io.File;
import java.io.FileWriter;
import java.i]]></description><category></category></item><item><title><![CDATA[设计模式（代理模式--静态代理）]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/47185139</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/47185139</guid><author>qiangcai</author><pubDate>Sat, 01 Aug 2015 12:01:40 +0800</pubDate><description><![CDATA[最近一段时间在看设计模式书籍，学习和了解了很多设计模式。昨天下午有公司打电话让我去面试，聊天中就被问到了有没有自己的博客。我想了下这些年看了些书籍但确实重来没有总结自己的学习成果，想着以后看完一些书籍要及时写下学习的知识点同时也可以和广大程序员分享。好了废话不多说了，今天来讲讲代理模式。
              代理模式分为静态代理和动态代理模式两种展现形式。]]></description><category></category></item><item><title><![CDATA[struts2.0原理]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/22752037</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/22752037</guid><author>qiangcai</author><pubDate>Tue, 01 Apr 2014 19:44:52 +0800</pubDate><description><![CDATA[转载至
http://zhidao.baidu.com/link?url=cYX324g-JmMvDoYHvQm7VpQ7EnzCWzApmi00rL3a0hYivto044s1s2zgG61uLVM-miLRV33vxOfhtNk8yXVL_q

http://www.cnblogs.com/jy02444453/archive/2011/08/27/2155427.html


s]]></description><category></category></item><item><title><![CDATA[对于hibernate的一级缓存和二级缓存理解]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/22749523</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/22749523</guid><author>qiangcai</author><pubDate>Tue, 01 Apr 2014 18:38:27 +0800</pubDate><description><![CDATA[该地址讲述了一级缓存和二级缓存的差别，说的非常明确和详细

http://www.blogjava.net/tbwshc/articles/380013.html]]></description><category></category></item><item><title><![CDATA[spring管理事务详解]]></title><link>https://blog.youkuaiyun.com/qiangcai/article/details/6182591</link><guid>https://blog.youkuaiyun.com/qiangcai/article/details/6182591</guid><author>qiangcai</author><pubDate>Sun, 13 Feb 2011 17:50:00 +0800</pubDate><description><![CDATA[    测试环境：sturts1.2+spring2.0+jdbc       数据库：oracle    之前一直对spring管理事务不是太了解，今天研究学习了总结如下：     通过spring来管理事务由三个部分组成：分别是DataSource,TransactionManager和代理机制3个部分。无论哪种配置方式，一般变化的只是代理机制这部分。这里我介绍spring管理JDBC的事务方式。      配置方式如下： xmlns:xsi="http://www.w3.org/2001/XMLSch]]></description><category></category></item></channel></rss>