<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Incomplete_bracket</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Incomplete_bracket]]></copyright><item><title><![CDATA[springboot 自定义初始化器(基于META-INF/spring.factories文件)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106754087</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106754087</guid><author>Incomplete_bracket</author><pubDate>Sun, 14 Jun 2020 23:54:48 +0800</pubDate><description><![CDATA[目录示例原理
示例
基于META-INF/spring.factories设置ApplicationContextInitializer实现类来实现自定义初始化器
1.创建一个TestInitializer 实现ApplicationContextInitializer,Ordered .
一个是初始化器接口, 一个是排序.
/**
 * @Author: xc
 * @Date: 2020/6/14
 */
public class TestInitializer implements Applicati]]></description><category></category></item><item><title><![CDATA[springboot 自定义初始化器 (基于DelegatingApplicationContextInitializer)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106753258</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106753258</guid><author>Incomplete_bracket</author><pubDate>Sun, 14 Jun 2020 23:14:21 +0800</pubDate><description><![CDATA[目录示例原理
示例
通过DelegatingApplicationContextInitializer类,来自定义实现初始化器.
创建一个TestInitializer 实现ApplicationContextInitializer,Ordered 接口
一个是初始化器接口, 一个是排序.
/**
 * @Author: xc
 * @Date: 2020/6/14
 */
public class TestInitializer implements ApplicationContextInitializ]]></description><category></category></item><item><title><![CDATA[SpringBoot源码分析之-启动流程分析四(prepareEnvironment 环境准备)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106632504</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106632504</guid><author>Incomplete_bracket</author><pubDate>Sun, 14 Jun 2020 17:26:37 +0800</pubDate><description><![CDATA[3.ConfigurableEnvironment environment = prepareEnvironment(listeners, applicationArguments);
	private ConfigurableEnvironment prepareEnvironment(SpringApplicationRunListeners listeners,
			ApplicationArguments applicationArguments) {
		// Create and config]]></description><category></category></item><item><title><![CDATA[阻塞队列 BlockingQueue]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106724838</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106724838</guid><author>Incomplete_bracket</author><pubDate>Sat, 13 Jun 2020 23:38:47 +0800</pubDate><description><![CDATA[目录BlockingQueue介绍BlockingQueue接口结构实现类介绍ArrayBlockingQueueLinkedBlockingQueueLinkedBlockingDequePriorityBlockingQueueSynchronousQueueDelayQueueLinkedTransferQueue总结
BlockingQueue介绍
阻塞队列,并发安全(ReentrantLock),不能插入null
BlockingQueue接口结构


定义了阻塞队列的几种插入和获取元素等方法

]]></description><category></category></item><item><title><![CDATA[java基础-循环]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106677631</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106677631</guid><author>Incomplete_bracket</author><pubDate>Thu, 11 Jun 2020 00:00:50 +0800</pubDate><description><![CDATA[循环方式简介while方式for方式退出循环的几种方式
简介
循环就是满足判断表达式就一直重复执行循环体, 就像绕操场跑步一圈一圈的跑不到规定的数不要停, 到终点又到起点开始.
所以写死循环就是让 判断表达式每次都为true
本篇主要讲java中循环的方式,和退出循环的方式
java中有循环有两种方式
1.while
2.for
退出循环的几种方式
1.自然结束
2.continue
3.break
4.异常
5.return
本篇的代码示例地址: github.
while方式
    @Test
   ]]></description><category></category></item><item><title><![CDATA[SpringBoot源码分析之-启动流程分析三(监听器SpringApplicationRunListener)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106609460</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106609460</guid><author>Incomplete_bracket</author><pubDate>Tue, 09 Jun 2020 00:40:56 +0800</pubDate><description><![CDATA[目录前言观察者模式run方法中出现的地方
前言
上一篇SpringBoot源码分析之-启动流程分析二(run方法)
简单分析了的run流程
这一篇主要分析一下监听器 SpringApplicationRunListener
观察者模式
	class SpringApplicationRunListeners {
		//监听器集合
		private final List&lt;SpringApplicationRunListener&gt; listeners;
		SpringApplicationRu]]></description><category></category></item><item><title><![CDATA[SpringBoot源码分析之-启动流程分析二(run方法步骤介绍)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106609917</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106609917</guid><author>Incomplete_bracket</author><pubDate>Mon, 08 Jun 2020 00:18:56 +0800</pubDate><description><![CDATA[目录前言run主要流程介绍简单方法介绍configureHeadlessProperty();getRunListeners()createApplicationContext()refreshContext(context);afterRefresh(context, applicationArguments);callRunners(context, applicationArguments);
前言
上一篇分析了SpringApplication的构造初始化,初始化主要设置加载类,项目类型(非web,]]></description><category></category></item><item><title><![CDATA[SpringBoot源码分析之-启动流程分析一(SpringApplication构造器)]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106581406</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106581406</guid><author>Incomplete_bracket</author><pubDate>Sun, 07 Jun 2020 19:21:11 +0800</pubDate><description><![CDATA[目录简介springboot入口类SpringApplication类简单介绍流程主要方法介绍
简介
springboot入口类

SpringApplication类
run方法进去看到
	public static ConfigurableApplicationContext run(Class&lt;?&gt; primarySource, String... args) {
		return run(new Class&lt;?&gt;[] { primarySource }, args);
	}
]]></description><category></category></item><item><title><![CDATA[java基础-注解]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106589962</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106589962</guid><author>Incomplete_bracket</author><pubDate>Sat, 06 Jun 2020 17:08:15 +0800</pubDate><description><![CDATA[目录简介元注解@Target@Retention@Document@Inhrited注解中的参数类型示例
简介
Java 注解（Annotation）又称 Java 标注，是 JDK5.0 引入的一种注释机制。
Java 语言中的类、方法、变量、参数和包等都可以被标注。注解的生命周期有三种: 源码,class,运行时.
元注解
元注解的作用就是负责注解其他注解，java 有4个meta-annotation类型，用来提供annotation类型做说明。
1.@Target
2.@Retention
3.@D]]></description><category></category></item><item><title><![CDATA[java基础-jdk动态代理]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106588593</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106588593</guid><author>Incomplete_bracket</author><pubDate>Sat, 06 Jun 2020 16:35:07 +0800</pubDate><description><![CDATA[目录代理模式动态代理JDK动态代理示例总结
代理模式
首先了解一下什么是代理模式, 现在有个有个Job, 我想要在执行work前后加上日志,那么如果没有代理类的话,我们需要修改实现类中work方法,在方法第一行加个日志,最后返回前加个日志. 日志原本与work无有直接关系,却和work直接耦合在了一起, 这违反了开闭原则.
代理模式通过一个代理类,代理类包含一个被代理对象,同样要加日志的话,只需要在代理类调用work方法前后加日志就行,而非修改work原有业务逻辑.
代理模式结构图

静态代理虽然解决了上诉]]></description><category></category></item><item><title><![CDATA[java基础-反射]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106587380</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106587380</guid><author>Incomplete_bracket</author><pubDate>Sat, 06 Jun 2020 15:35:54 +0800</pubDate><description><![CDATA[目录前言反射相关类简介准备ClassFieldMethodConstructor总结
前言
JAVA反射机制是在运行状态中, 对于任意一个类, 都能够知道这个类的所有属性, 方法, 注解, 继承实现的信息,也就你想要的这里都有. 对于任意一个对象, 都能够调用它的任意方法和属性, 这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.
反射是学习框架源码之前必须掌握的知识!
本篇主要是介绍api的使用
在线文档.
示例代码github.
反射相关类简介




类
描述




Class
]]></description><category></category></item><item><title><![CDATA[lombok常用注解]]></title><link>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106517589</link><guid>https://blog.youkuaiyun.com/Incomplete_bracket/article/details/106517589</guid><author>Incomplete_bracket</author><pubDate>Sat, 06 Jun 2020 13:09:41 +0800</pubDate><description><![CDATA[lombok使用
官网: projectlombok.org

]]></description><category></category></item></channel></rss>