<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[丶洗牙刷脸]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xt8469</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xt8469]]></copyright><item><title><![CDATA[IdleStateHandler]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/84827443</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/84827443</guid><author>xt8469</author><pubDate>Wed, 05 Dec 2018 11:57:33 +0800</pubDate><description><![CDATA[
作用：用于空闲连接处理，当出现reader/writer空闲时，触发IdleStateEvent Netty事件，ChannelInboundHandler通过userEventTriggered来捕获这个事件，从而进行处理。

一、构造函数
一般我们使用的IdleStateHandler的构造函数有4个参数：

long readerIdleTimeSeconds：Channel多久没有读取数...]]></description><category></category></item><item><title><![CDATA[Spring注解之@Conditional]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/82260126</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/82260126</guid><author>xt8469</author><pubDate>Fri, 31 Aug 2018 17:53:45 +0800</pubDate><description><![CDATA[@Conditional


  Spring 提供了profile进行一个动态配置选择，同时更加细力度的，我们可以使用@Conditional来实现。可以说profile能够实现的，@Conditional都能够实现。




@Configuration
@Conditional({Main.MyCondition.class})
@Main.MyAnnotation({&quot;123&quot;, &quot;456...]]></description><category></category></item><item><title><![CDATA[Spring注解之@Import和@ImportResource]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/82260091</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/82260091</guid><author>xt8469</author><pubDate>Fri, 31 Aug 2018 17:51:44 +0800</pubDate><description><![CDATA[前言


  为什么研究这两个注解，是因为在看Spring Boot源码的时候，对于其中大量的EnableXXX都使用了@Import注解，所以决定研究下这个注解，顺便写了一点关于@ImportRescource注解的东西，希望对大家有帮助。




@Import


  简介：功能类似XML配置的，用来导入配置类，可以导入带有@Configuration注解的配置类或实现了ImportSele...]]></description><category></category></item><item><title><![CDATA[Spring注解之@Bean]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/82260074</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/82260074</guid><author>xt8469</author><pubDate>Fri, 31 Aug 2018 17:50:28 +0800</pubDate><description><![CDATA[@Bean


  功能：注册实例为Spring Bean。




/**
 * Indicates that a method produces a bean to be managed by the Spring container.
 *
 * &amp;lt;h3&amp;gt;Overview&amp;lt;/h3&amp;gt;
 *
 * &amp;lt;p&amp;gt;The names and semantics of t...]]></description><category></category></item><item><title><![CDATA[Spring注解之@Configuration]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/82260048</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/82260048</guid><author>xt8469</author><pubDate>Fri, 31 Aug 2018 17:48:55 +0800</pubDate><description><![CDATA[前言


  Spring 3.0之后推出了大量的注解来完全替代XML，这里介绍一下@Configuration的使用，希望能给大家带来收获。




@Configuration


  这个注解用过Spring纯注解配置方式的都不陌生，代表这是一个Spring配置类。


建议大家有时间还是看下这个源码的解释，说了很多@Configuration的多种使用方式。



/**
 * Indic...]]></description><category></category></item><item><title><![CDATA[JUC中的同步工具类]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/81430393</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/81430393</guid><author>xt8469</author><pubDate>Sun, 05 Aug 2018 15:32:21 +0800</pubDate><description><![CDATA[0.主题

       在JDK1.5之前，我们只能通过Object的wait/notify/notifyAll来进行线程之间的协作，阻塞当前线程和唤醒阻塞在该Object方法上的线程。不过在JDK 1.5之后，JUC包中推出了很多工具类，来方便我们完成线程之间的协作，方便更加高效的低错误率的实现一些功能。这里介绍三个JUC中的工具类，CountDownLatch/Semaphore/Barri...]]></description><category></category></item><item><title><![CDATA[Java线程池]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/80300415</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/80300415</guid><author>xt8469</author><pubDate>Sun, 13 May 2018 18:22:52 +0800</pubDate><description><![CDATA[线程池概述通俗的讲，线程池就是一个池子，里面全是线程。目的是对线程进行统一管理，对线程进行复用，对线程数量进行控制，避免过多的线程导致系统缓慢。和线程池紧密关联的是阻塞队列，当线程池中线程全部属于活跃状态时，新进来的请求就需要放在阻塞队列中进行排队等待空闲的线程。Java中线程池的顶级接口Executor：public interface Executor {

    /**
     * Ex...]]></description><category></category></item><item><title><![CDATA[Java锁]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/80263172</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/80263172</guid><author>xt8469</author><pubDate>Sat, 12 May 2018 14:21:04 +0800</pubDate><description><![CDATA[锁类型锁按照不同的标准可以定义出不同类型。可重入锁/不可重入锁公平锁/非公平锁独占锁/共享锁乐观锁/悲观锁偏向锁/轻量级锁/重量级锁可重入锁/不可重入锁按照锁是否可以嵌套获取，我们可以将锁分为可重入锁和不可重入锁。Java中的synchronized和ReentrantLock都是可重入锁，现在基本上很少见不可重入锁，不可重入锁在嵌套获取锁的时候会阻塞出现死锁。如下代码就是一个不可重入锁，永远不会...]]></description><category></category></item><item><title><![CDATA[Git学习笔记]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/62424729</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/62424729</guid><author>xt8469</author><pubDate>Thu, 16 Mar 2017 15:51:38 +0800</pubDate><description><![CDATA[参考git pro:http://git.oschina.net/progit
本地仓库
git init 初始化一个本地仓库
git status 检查当前文件的状态
git add 文件名 将新文件纳入版本控制，或将修改的旧文件添加到暂存，以等待提交，

可以使用git add * 来添加所有文件（将新文件纳入版本控制，将修改的旧文件添加到暂存区）。
git rm 文件名 将文件]]></description><category></category></item><item><title><![CDATA[SLF4J学习笔记]]></title><link>https://blog.youkuaiyun.com/xt8469/article/details/53908334</link><guid>https://blog.youkuaiyun.com/xt8469/article/details/53908334</guid><author>xt8469</author><pubDate>Wed, 28 Dec 2016 14:34:26 +0800</pubDate><description><![CDATA[1、什么是SLF4J？
SLF4J，即简单日志门面（Simple Logging Facade for Java），不是具体的日志解决方案，它只服务于各种各样的日志系统。按照官方的说法，SLF4J是一个用于日志系统的简单Facade，允许最终用户在部署其应用时使用其所希望的日志系统。

简单的说，SLF4J是多个日志的统一门面，SLF4J通往提供了各个日志实现框架的插件。最终用户只需要通过调]]></description><category></category></item></channel></rss>