<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lazyRabbit的博客]]></title><description><![CDATA[halala]]></description><link>https://blog.youkuaiyun.com/lazyRabbitLLL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lazyRabbitLLL]]></copyright><item><title><![CDATA[nginx的安装以及配置]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/90550645</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/90550645</guid><author>lazyRabbitLLL</author><pubDate>Sat, 25 May 2019 19:37:04 +0800</pubDate><description><![CDATA[一、安装
官网
https://nginx.org/en/download.html
命令
# 下载
wget https://nginx.org/download/nginx-1.14.2.tar.gz
# 解压
tar -zxvf nginx-1.14.2.tar.gz
# 检测当前系统环境，以确保能成功安装nginx
./configure
# 安装
make&amp;make instal...]]></description><category></category></item><item><title><![CDATA[hexo的安装以及配置]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/90550638</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/90550638</guid><author>lazyRabbitLLL</author><pubDate>Sat, 25 May 2019 19:36:15 +0800</pubDate><description><![CDATA[一、前言
使用markdown写东西比较多，所以决定弃掉之前自己用java写的一个blog网站，改用hexo。
二、开始
1、安装git以及node
# 安装git
yum install git
# 安装node
cd /usr/local/download
# node下载安装包
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux...]]></description><category></category></item><item><title><![CDATA[委派模式]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/88082782</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/88082782</guid><author>lazyRabbitLLL</author><pubDate>Sat, 02 Mar 2019 22:42:22 +0800</pubDate><description><![CDATA[一、定义
委托模式是软件设计模式中的一项基本技巧。在委托模式中，有两个对象参与处理同一个请求，接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧，许多其他的模式，如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承，它还使我们可以模拟mixin。
二 原理
类B和类A是两个互相没有任何关系的类，但是B具有和A一模一样的方法和属性...]]></description><category></category></item><item><title><![CDATA[java 锁框架]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87857774</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87857774</guid><author>lazyRabbitLLL</author><pubDate>Thu, 21 Feb 2019 11:27:20 +0800</pubDate><description><![CDATA[一、锁框架结构

Lock接口：Lock接口支持那些语义不同(重入、公平等)的锁规则。
ReadWriteLock接口：ReadWriteLock接口定义了一些读取者可以共享而写入者独占的锁。
AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer：AbstractQueuedSyn...]]></description><category></category></item><item><title><![CDATA[线程池原理（ThreadPoolExecutor）]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87627518</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87627518</guid><author>lazyRabbitLLL</author><pubDate>Mon, 18 Feb 2019 16:27:26 +0800</pubDate><description><![CDATA[一、创建一个线程池对象
使用Executors创建一个线程池常用的方法如下：
1、newFixedThreadPool()
说明：初始化一个指定线程数的线程池，其中 corePoolSize == maxiPoolSize，使用 LinkedBlockingQuene 作为阻塞队列
特点：即使当线程池没有可执行任务时，也不会释放线程。
2、newCachedThreadPool()
说明：初始化一...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）⑥]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278154</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278154</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 15:54:05 +0800</pubDate><description><![CDATA[finishRefresh()方法
	/**
	 * Finish the refresh of this context, invoking the LifecycleProcessor's
	 * onRefresh() method and publishing the
	 * {@link org.springframework.context.event.ContextRefreshed...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）⑤]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278086</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278086</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 15:53:15 +0800</pubDate><description><![CDATA[finishBeanFactoryInitialization()方法
/**
	 * Finish the initialization of this context's bean factory,
	 * initializing all remaining singleton beans.
	 */
	protected void finishBeanFactoryInitializati...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）④]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278035</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87278035</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 15:52:41 +0800</pubDate><description><![CDATA[prepareBeanFactory()方法
在解析注册完BeanDefine之后，就开始了对Bean工厂的准备过程
	/**
	 * Configure the factory's standard context characteristics,
	 * such as the context's ClassLoader and post-processors.
	 * @param bean...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）③]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272348</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272348</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 14:33:30 +0800</pubDate><description><![CDATA[prepareRefresh()方法
	/**
	 * Prepare this context for refreshing, setting its startup date and
	 * active flag as well as performing any initialization of property sources.
	 */
	protected void prepare...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）②]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272260</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272260</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 14:32:15 +0800</pubDate><description><![CDATA[实例化一个spring容器（ClassPathXmlApplicationContext）
ClassPathXmlApplicationContext的构造方法如下：
	/**
	 * Create a new ClassPathXmlApplicationContext, loading the definitions
	 * from the given XML file and autom...]]></description><category></category></item><item><title><![CDATA[Spring IOC源码分析（5.1.4版本）①]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272106</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/87272106</guid><author>lazyRabbitLLL</author><pubDate>Thu, 14 Feb 2019 14:30:09 +0800</pubDate><description><![CDATA[首先配置spring的依赖环境：
    &amp;amp;lt;dependencies&amp;amp;gt;
        &amp;amp;lt;dependency&amp;amp;gt;
            &amp;amp;lt;groupId&amp;amp;gt;org.springframework&amp;amp;lt;/groupId&amp;amp;gt;
            &amp;amp;lt;artifactId&amp;amp;gt;spring-context]]></description><category></category></item><item><title><![CDATA[Java 原子类]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86678827</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86678827</guid><author>lazyRabbitLLL</author><pubDate>Mon, 28 Jan 2019 16:02:14 +0800</pubDate><description><![CDATA[原子类
根据修改的数据类型，可以将JUC包中的原子操作类可以分为4类。

基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;
数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;
引用类型: AtomicReference, AtomicStampedRerence, Ato...]]></description><category></category></item><item><title><![CDATA[Spring MVC]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86633936</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86633936</guid><author>lazyRabbitLLL</author><pubDate>Thu, 24 Jan 2019 21:56:24 +0800</pubDate><description><![CDATA[一、Spring Web MVC框架简介
Spring的模型-视图-控制器（MVC）框架是围绕一个DispatcherServlet来设计的，这个Servlet会把请求分发给各个处理器，并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等，甚至还能支持文件上传。
二、Servlet的生命周期
Servlet的生命周期包含了下面4个阶段：


加载和实例化：Servlet容器负责加载和实例化...]]></description><category></category></item><item><title><![CDATA[Spring AOP]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86539565</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86539565</guid><author>lazyRabbitLLL</author><pubDate>Fri, 18 Jan 2019 14:36:37 +0800</pubDate><description><![CDATA[一、概念
1、AOP
AOP为Aspect Oriented Programming的缩写，意为：面向切面编程，通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续，是软件开发中的一个热点，也是Spring框架中的一个重要内容，是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离，从而使得业务逻辑各部分之间的耦合度降低，提高程序的可重用性，同时提高...]]></description><category></category></item><item><title><![CDATA[代理模式以及实现（静态代理、动态代理）]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86507879</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86507879</guid><author>lazyRabbitLLL</author><pubDate>Wed, 16 Jan 2019 15:02:28 +0800</pubDate><description><![CDATA[一、定义
代理模式给某一个对象提供一个代理对象，并由代理对象控制对原对象的引用。

二、为什么要用代理模式？


中介隔离作用：


在某些情况下，一个客户类不想或者不能直接引用一个委托对象，而代理类对象可以在客户类和委托对象之间起到中介的作用，其特征是代理类和委托类实现相同的接口。


开闭原则，增加功能：


代理类除了是客户类和委托类的中介之外，我们还可以通过给代理类增加额外的功能来扩展委托...]]></description><category></category></item><item><title><![CDATA[Spring IOC]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86259300</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/86259300</guid><author>lazyRabbitLLL</author><pubDate>Thu, 10 Jan 2019 22:08:53 +0800</pubDate><description><![CDATA[
IoC，Inversion of Control，控制反转。控制反转是一种通过描述（在java中可以使XML或者注解）并通过第三方去获取特定对象的方式。简单地说就是将对象由虚拟机主动创建变为从IoC容器中获取，它是面向对象编程的一种思想，主要作用是降低开发难度、对模块解耦、有利于测试

一、内部设计



BeanFactory接口


BeanFactory作为最顶层的一个接口类，它定义了IO...]]></description><category></category></item><item><title><![CDATA[Java注解(Annotation)]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85264549</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85264549</guid><author>lazyRabbitLLL</author><pubDate>Wed, 26 Dec 2018 16:35:00 +0800</pubDate><description><![CDATA[一、定义一个注解的方式
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UseCase  {
    public String id();
    public String description() default &quot;no description&quot;;
}

Java提供了4种注...]]></description><category></category></item><item><title><![CDATA[Java 反射]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85264496</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85264496</guid><author>lazyRabbitLLL</author><pubDate>Wed, 26 Dec 2018 16:32:41 +0800</pubDate><description><![CDATA[一、反射机制概念
主要是指程序可以访问，检测和修改它本身状态或行为的一种能力，并能根据自身行为的状态和结果，调整或修改应用所描述行为的状态和相关的语义。在java中，只要给定类的名字， 那么就可以通过反射机制来获得类的所有信息。
反射是Java中一种强大的工具，能够使我们很方便的创建灵活的代码，这些代码可以再运行时装配，无需在组件之间进行源代码链接。但是反射使用不当会成本很高！
二、反射机制的作用...]]></description><category></category></item><item><title><![CDATA[springboot集成rabbitmq实现邮件服务]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85226600</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85226600</guid><author>lazyRabbitLLL</author><pubDate>Sun, 23 Dec 2018 21:39:31 +0800</pubDate><description><![CDATA[生产者
pom依赖如下
&amp;amp;lt;dependency&amp;amp;gt;
	&amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/groupId&amp;amp;gt;
	&amp;amp;lt;artifactId&amp;amp;gt;spring-boot-starter-amqp&amp;amp;lt;/artifactId&amp;amp;gt;
&amp;amp;lt;/dependency&a]]></description><category></category></item><item><title><![CDATA[RabbitMQ的一些基本概念]]></title><link>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85226260</link><guid>https://blog.youkuaiyun.com/lazyRabbitLLL/article/details/85226260</guid><author>lazyRabbitLLL</author><pubDate>Sun, 23 Dec 2018 21:37:15 +0800</pubDate><description><![CDATA[RabbitMQ
RabbitMQ是一个开源的AMQP实现，服务器端用Erlang语言编写，支持多种客户端，如：Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等，支持AJAX。用于在分布式系统中存储转发消息，在易用性、扩展性、高可用性等方面表现不俗。
AMQP，即Advanced Message Queuing Protocol，高级...]]></description><category></category></item></channel></rss>