<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[leileihei的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/leileihei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; leileihei]]></copyright><item><title><![CDATA[java泛型的几点总结]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84921019</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84921019</guid><author>leileihei</author><pubDate>Wed, 23 May 2018 21:40:36 +0800</pubDate><description><![CDATA[
1 父类是个泛型类，子类继承父类，如果不指定父类的泛型类型或者没有重新声明一个泛型，那么子类讲不是一个泛型类
public class Parent&amp;lt;T&amp;gt; {
   
}

public class Son extends Parent {
}
 下面这样写是会报错的
Son&amp;lt;Integer&amp;gt; song = new Son&amp;lt;Integer&amp;gt;(...]]></description><category></category></item><item><title><![CDATA[dubbo接口超时时间的优先级]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84915142</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84915142</guid><author>leileihei</author><pubDate>Thu, 18 Jan 2018 15:42:29 +0800</pubDate><description><![CDATA[
dubbo在服务端和消费端都可以设置接口的超时时间，如果同一个接口，两端都进行了设置，消费端的优先级要高于消费端。
之前一直有这样一个理解：对应TCP的连接，发起请求后，服务端也可以设置超时时间，当超过超时时间，服务端可以中断和客户端的连接。其实这样理解是错误的，服务端是没有超时时间的，所谓的超时其实都是在客户端进行设置，到超过超时时间没有响应，客户端就会处理超时。
dubbo中的超时时间也...]]></description><category></category></item><item><title><![CDATA[dubbo中的ExtensionLoader]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84914824</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84914824</guid><author>leileihei</author><pubDate>Thu, 11 Jan 2018 21:36:35 +0800</pubDate><description><![CDATA[
dubbo中自己实现了一套SPI，解决了dubbo的可扩展性问题，方便了框架的各层可以在多个不同的实现之间进行来回切换。
SPI的实现主要在类ExtensionLoader中，这个类的构造函数接收一个Class类型的参数，并且这个class必须是接口，必须用注解spi进行标注。有多少个可扩展接口，就有多少个ExtensionLoader的实例。
这个类中一共有三类方法：根据名字获取实现、获...]]></description><category></category></item><item><title><![CDATA[ReentrantLock源码阅读-整体流程图]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84897606</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84897606</guid><author>leileihei</author><pubDate>Thu, 08 Jun 2017 21:35:50 +0800</pubDate><description><![CDATA[

 
加锁、解锁的整体流程图。实际上要比这复杂，上面的流程图只做理解用。
 
]]></description><category></category></item><item><title><![CDATA[泛型使用类型通配符]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84859147</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84859147</guid><author>leileihei</author><pubDate>Sun, 05 Mar 2017 15:52:12 +0800</pubDate><description><![CDATA[
具有以下继承关系的三个类
 
Manager继承自Person，CTO继承自Manager
 
 
private void doSome1(){
        Box&amp;lt;CTO&amp;gt; ctoBox = new Box&amp;lt;CTO&amp;gt;();
        Box&amp;lt;? extends Person&amp;gt; personBox = ctoBox;
      ...]]></description><category></category></item><item><title><![CDATA[docker学习记录]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84823964</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84823964</guid><author>leileihei</author><pubDate>Sat, 29 Oct 2016 13:26:45 +0800</pubDate><description><![CDATA[
启动容器
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
 
-i：表示以“交互模式”运行容器-t：表示容器启动后会进入其命令行-v：表示需要将本地哪个目录挂载到容器中，格式：-v &amp;lt;宿主机目录&amp;gt;:&amp;lt;容器目录&amp;gt;
 
删除所有正在运行的容器
sudo docke...]]></description><category></category></item><item><title><![CDATA[Linux下is not in the sudoers file解决方法]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84821308</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84821308</guid><author>leileihei</author><pubDate>Thu, 13 Oct 2016 17:25:51 +0800</pubDate><description><![CDATA[
当我们使用sudo命令切换用户的时候可能会遇到提示以下错误：xxx is not in the sudoers file. This incident will be reported，xxx是你当前的用户名，究其原因是用户没有加入到sudo的配置文件里
1、切换到root用户，运行visudo命令
2、在打开的配置文件中，找到root ALL=(ALL) ALL，在下面添加一行

xx...]]></description><category></category></item><item><title><![CDATA[linux中查找jdk的安装路径]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84821301</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84821301</guid><author>leileihei</author><pubDate>Thu, 13 Oct 2016 16:54:45 +0800</pubDate><description><![CDATA[
首先要申明一下which java是定位不到安装路径的。which java定位到的是java程序的执行路径。网上的资料都是人云亦云，完全不去思考。那么怎么定位到java的安装路径呢？下面我们来看看例子吧,如下所示：
[root@localhost ~]# java -version
 
java version &quot;1.7.0_65&quot;
 
OpenJDK Runtime Environ...]]></description><category></category></item><item><title><![CDATA[windows安装hadoopJAVA_HOME中有空格的解决方案]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84821004</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84821004</guid><author>leileihei</author><pubDate>Wed, 12 Oct 2016 10:49:28 +0800</pubDate><description><![CDATA[
在windows中安装hadoop，JAVA_HOME中如果有空格，就会报下面的错误
hadoop Error: JAVA_HOME is incorrectly set.
解决方案，设置软连接，重新配置JAVA_HOME
 
使用 cmd 创建软连接 :
mklink /J D:\tools\java &quot;D:\Program Files\Java\jdk1.7.0_67&quot;  
 ...]]></description><category></category></item><item><title><![CDATA[sharding-jdbc源码分析（二）之读写分离]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84818541</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84818541</guid><author>leileihei</author><pubDate>Thu, 22 Sep 2016 19:27:25 +0800</pubDate><description><![CDATA[
sjdbc有读写分离的功能，要使用这个功能，在创建数据源对象是要使用类：ＭasterSlaveDataSource，并且设置主备数据源和数据库名称
这个对象有下面的属性：
name：数据库的名称
masterDataSource：主数据源对象
slaveDataSources：备库数据源类别
slaveLoadBalanceStrategy：选从算法
 
 /**
     *...]]></description><category></category></item><item><title><![CDATA[sharding-jdbc源码分析（一）之分片配置]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84818372</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84818372</guid><author>leileihei</author><pubDate>Wed, 21 Sep 2016 22:14:04 +0800</pubDate><description><![CDATA[
分片配置的目的显而易见：就是将数据库分片规则和策略告诉sharding-jdbc
sharding-jdbc需要知道如下信息：
（1）哪些表需要分片
（2）需要分成哪些库？哪些表？名字分别是什么
（3）通过哪个字段（或哪些字段）进行分库分表
（4）具体的分库或分表算法什么怎样的
（5）分片规则和策略相关的一组表怎么处理
 
刚开始看官方的小例子，分片配置的代码有些懵逼，梳理了一...]]></description><category></category></item><item><title><![CDATA[spring中的<mvc:annotation- driven/>]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84741271</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84741271</guid><author>leileihei</author><pubDate>Fri, 11 Sep 2015 14:27:57 +0800</pubDate><description><![CDATA[
3.1之后 spring自动注入 RequestMappingHandlerMapping RequestMappingHandlerAdapter
3.1之前 注入AnnotationMethodHandlerAdapte AnnotationMethodHandlerMapping 
 
没加 采用默认的配置
org.springframework.web.servlet.Handl...]]></description><category></category></item><item><title><![CDATA[spring中的<context:annotation-config/>和<context:component-scan>]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84741266</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84741266</guid><author>leileihei</author><pubDate>Fri, 11 Sep 2015 14:23:08 +0800</pubDate><description><![CDATA[
&amp;lt;context:annotation-config/&amp;gt;
他的作用是式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、
PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostP...]]></description><category></category></item><item><title><![CDATA[jdk中的jps工具，]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84718709</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84718709</guid><author>leileihei</author><pubDate>Fri, 15 May 2015 15:52:49 +0800</pubDate><description><![CDATA[
最近学了一些jdk中的jps工具，通过jsp命令显示当前的jvm进程，把一些常用的用法记录一下：
 
直接输入jps，输出当前用户的所有jvm的进程id和执行主类名称（mai函数所在类的名称）。
[sch@s2-3 logs]$ jps
24449 Jps
22186 start.jar
 
jps -l ，输出进程id和主类的全名（完整包路径），如果执行的是jar包，会显示完整的...]]></description><category></category></item><item><title><![CDATA[spring中的MethodInvokingFactoryBean]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84652395</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84652395</guid><author>leileihei</author><pubDate>Sat, 13 Sep 2014 16:56:47 +0800</pubDate><description><![CDATA[
如果在spring中配置了一个bean，并且class属性为：org.springframework.beans.factory.config.MethodInvokingFactoryBean。那么这个bean的实例可以通过某种方式返回给spring容器。这种方式是可以定制的，可以是某个对象的某个方法的返回值。描述的好像很难理解，看实例：
 
&amp;lt;bean id = &quot;object&quot; ...]]></description><category></category></item><item><title><![CDATA[通过AbstractRoutingDataSource实现动态数据源]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/84652387</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/84652387</guid><author>leileihei</author><pubDate>Sat, 13 Sep 2014 16:25:20 +0800</pubDate><description><![CDATA[
项目中用到了动态数据源，所以在这里做下记录。
 
AbstractRoutingDataSource中route是路由的意思，单从名字，我们就可以看出这个类是做什么用的
 
动态数据源是指，同一个数据库访问接口，根据上下文不通，可以利用不同的数据源访问数据库。 项目中采用了spring jdbc来访问数据库，配置文件如下：
 
&amp;lt;!--sqlMapClient配置--&amp;gt;...]]></description><category></category></item><item><title><![CDATA[深入研究ReentrantLock（重入锁）之引出话题篇]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/83763868</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/83763868</guid><author>leileihei</author><pubDate>Sat, 13 Nov 2010 17:37:49 +0800</pubDate><description><![CDATA[转自：http://www.crabone.com/index.php/2009/05/30/291.html 

一直以来都想好好研究下ReentrantLock，她的独到魅力令我屡试不爽，无奈网上实在是没有太多的资料可以参考，于是自己开始深入研究它的内部实现机制，经过数天的研究，终于有点心得体会升华了，记录之…… 

synchronized原语和ReentrantLock在一般情况下...]]></description><category></category></item><item><title><![CDATA[ 用socket调用webservice]]></title><link>https://blog.youkuaiyun.com/leileihei/article/details/83741579</link><guid>https://blog.youkuaiyun.com/leileihei/article/details/83741579</guid><author>leileihei</author><pubDate>Wed, 03 Nov 2010 11:49:29 +0800</pubDate><description><![CDATA[一直对webservice的底层实现很好奇，想通过比较底层的方式调用到webservice，webservice是通过http协议来通信的，交互的是soap消息，是不是发送一个特定格式的http请求，就可以调用到webservice呢?鼓捣了半天，终于通过下面的方式调到了。
[code=&quot;java&quot;]Socket socket = new Socket(&quot;127.0.0.13&quot;,8080);
...]]></description><category></category></item></channel></rss>