Skip to content

Commit 57cc3aa

Browse files
committed
add Table of Contents
1 parent ed4ee98 commit 57cc3aa

8 files changed

+500
-0
lines changed

note/Spring.md

+102
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,105 @@
1+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4+
5+
- [基本](#%E5%9F%BA%E6%9C%AC)
6+
- [ClassPathXmlApplicationContext](#classpathxmlapplicationcontext)
7+
- [构造器](#%E6%9E%84%E9%80%A0%E5%99%A8)
8+
- [设置配置文件路径](#%E8%AE%BE%E7%BD%AE%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84)
9+
- [Environment接口](#environment%E6%8E%A5%E5%8F%A3)
10+
- [Profile](#profile)
11+
- [Property](#property)
12+
- [Environment构造器](#environment%E6%9E%84%E9%80%A0%E5%99%A8)
13+
- [PropertySources接口](#propertysources%E6%8E%A5%E5%8F%A3)
14+
- [PropertySource接口](#propertysource%E6%8E%A5%E5%8F%A3)
15+
- [路径Placeholder处理](#%E8%B7%AF%E5%BE%84placeholder%E5%A4%84%E7%90%86)
16+
- [PropertyResolver接口](#propertyresolver%E6%8E%A5%E5%8F%A3)
17+
- [解析](#%E8%A7%A3%E6%9E%90)
18+
- [refresh](#refresh)
19+
- [prepareRefresh](#preparerefresh)
20+
- [属性校验](#%E5%B1%9E%E6%80%A7%E6%A0%A1%E9%AA%8C)
21+
- [BeanFactory创建](#beanfactory%E5%88%9B%E5%BB%BA)
22+
- [BeanFactory接口](#beanfactory%E6%8E%A5%E5%8F%A3)
23+
- [BeanFactory定制](#beanfactory%E5%AE%9A%E5%88%B6)
24+
- [Bean加载](#bean%E5%8A%A0%E8%BD%BD)
25+
- [EntityResolver](#entityresolver)
26+
- [BeanDefinitionReader](#beandefinitionreader)
27+
- [路径解析(Ant)](#%E8%B7%AF%E5%BE%84%E8%A7%A3%E6%9E%90ant)
28+
- [配置文件加载](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD)
29+
- [Bean解析](#bean%E8%A7%A3%E6%9E%90)
30+
- [默认命名空间解析](#%E9%BB%98%E8%AE%A4%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E8%A7%A3%E6%9E%90)
31+
- [import](#import)
32+
- [alias](#alias)
33+
- [bean](#bean)
34+
- [id & name处理](#id--name%E5%A4%84%E7%90%86)
35+
- [beanName生成](#beanname%E7%94%9F%E6%88%90)
36+
- [bean解析](#bean%E8%A7%A3%E6%9E%90)
37+
- [Bean装饰](#bean%E8%A3%85%E9%A5%B0)
38+
- [Bean注册](#bean%E6%B3%A8%E5%86%8C)
39+
- [BeanDefiniton数据结构](#beandefiniton%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
40+
- [beans](#beans)
41+
- [其它命名空间解析](#%E5%85%B6%E5%AE%83%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E8%A7%A3%E6%9E%90)
42+
- [NamespaceHandler继承体系](#namespacehandler%E7%BB%A7%E6%89%BF%E4%BD%93%E7%B3%BB)
43+
- [init](#init)
44+
- [BeanFactory数据结构](#beanfactory%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
45+
- [prepareBeanFactory](#preparebeanfactory)
46+
- [BeanExpressionResolver](#beanexpressionresolver)
47+
- [PropertyEditorRegistrar](#propertyeditorregistrar)
48+
- [环境注入](#%E7%8E%AF%E5%A2%83%E6%B3%A8%E5%85%A5)
49+
- [依赖解析忽略](#%E4%BE%9D%E8%B5%96%E8%A7%A3%E6%9E%90%E5%BF%BD%E7%95%A5)
50+
- [bean伪装](#bean%E4%BC%AA%E8%A3%85)
51+
- [LoadTimeWeaver](#loadtimeweaver)
52+
- [注册环境](#%E6%B3%A8%E5%86%8C%E7%8E%AF%E5%A2%83)
53+
- [postProcessBeanFactory](#postprocessbeanfactory)
54+
- [invokeBeanFactoryPostProcessors](#invokebeanfactorypostprocessors)
55+
- [BeanPostProcessor注册](#beanpostprocessor%E6%B3%A8%E5%86%8C)
56+
- [MessageSource](#messagesource)
57+
- [事件驱动](#%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8)
58+
- [事件](#%E4%BA%8B%E4%BB%B6)
59+
- [发布者](#%E5%8F%91%E5%B8%83%E8%80%85)
60+
- [ApplicationEventPublisher](#applicationeventpublisher)
61+
- [ApplicationEventMulticaster](#applicationeventmulticaster)
62+
- [监听器](#%E7%9B%91%E5%90%AC%E5%99%A8)
63+
- [初始化](#%E5%88%9D%E5%A7%8B%E5%8C%96)
64+
- [事件发布](#%E4%BA%8B%E4%BB%B6%E5%8F%91%E5%B8%83)
65+
- [监听器获取](#%E7%9B%91%E5%90%AC%E5%99%A8%E8%8E%B7%E5%8F%96)
66+
- [同步/异步](#%E5%90%8C%E6%AD%A5%E5%BC%82%E6%AD%A5)
67+
- [全局](#%E5%85%A8%E5%B1%80)
68+
- [注解](#%E6%B3%A8%E8%A7%A3)
69+
- [onRefresh](#onrefresh)
70+
- [ApplicationListener注册](#applicationlistener%E6%B3%A8%E5%86%8C)
71+
- [singleton初始化](#singleton%E5%88%9D%E5%A7%8B%E5%8C%96)
72+
- [ConversionService](#conversionservice)
73+
- [StringValueResolver](#stringvalueresolver)
74+
- [LoadTimeWeaverAware](#loadtimeweaveraware)
75+
- [初始化](#%E5%88%9D%E5%A7%8B%E5%8C%96-1)
76+
- [getBean](#getbean)
77+
- [beanName转化](#beanname%E8%BD%AC%E5%8C%96)
78+
- [手动注册bean检测](#%E6%89%8B%E5%8A%A8%E6%B3%A8%E5%86%8Cbean%E6%A3%80%E6%B5%8B)
79+
- [检查父容器](#%E6%A3%80%E6%9F%A5%E7%88%B6%E5%AE%B9%E5%99%A8)
80+
- [依赖初始化](#%E4%BE%9D%E8%B5%96%E5%88%9D%E5%A7%8B%E5%8C%96)
81+
- [Singleton初始化](#singleton%E5%88%9D%E5%A7%8B%E5%8C%96)
82+
- [getSingleton方法](#getsingleton%E6%96%B9%E6%B3%95)
83+
- [是否存在](#%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8)
84+
- [bean创建](#bean%E5%88%9B%E5%BB%BA)
85+
- [lookup-method检测](#lookup-method%E6%A3%80%E6%B5%8B)
86+
- [InstantiationAwareBeanPostProcessor触发](#instantiationawarebeanpostprocessor%E8%A7%A6%E5%8F%91)
87+
- [doCreateBean](#docreatebean)
88+
- [创建(createBeanInstance)](#%E5%88%9B%E5%BB%BAcreatebeaninstance)
89+
- [MergedBeanDefinitionPostProcessor](#mergedbeandefinitionpostprocessor)
90+
- [属性解析](#%E5%B1%9E%E6%80%A7%E8%A7%A3%E6%9E%90)
91+
- [属性设置](#%E5%B1%9E%E6%80%A7%E8%AE%BE%E7%BD%AE)
92+
- [初始化](#%E5%88%9D%E5%A7%8B%E5%8C%96-2)
93+
- [getObjectForBeanInstance](#getobjectforbeaninstance)
94+
- [Prototype初始化](#prototype%E5%88%9D%E5%A7%8B%E5%8C%96)
95+
- [beforePrototypeCreation](#beforeprototypecreation)
96+
- [createBean](#createbean)
97+
- [afterPrototypeCreation](#afterprototypecreation)
98+
- [总结](#%E6%80%BB%E7%BB%93)
99+
- [其它Scope初始化](#%E5%85%B6%E5%AE%83scope%E5%88%9D%E5%A7%8B%E5%8C%96)
100+
101+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
102+
1103
# 基本
2104

3105
本部分从最基本的Spring开始。配置文件:

note/guava-cache.md

+34
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4+
5+
- [创建](#%E5%88%9B%E5%BB%BA)
6+
- [数据结构](#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
7+
- [segments](#segments)
8+
- [ReferenceEntry](#referenceentry)
9+
- [初始化](#%E5%88%9D%E5%A7%8B%E5%8C%96)
10+
- [ReferenceEntry数组](#referenceentry%E6%95%B0%E7%BB%84)
11+
- [引用队列](#%E5%BC%95%E7%94%A8%E9%98%9F%E5%88%97)
12+
- [put](#put)
13+
- [Hash算法](#hash%E7%AE%97%E6%B3%95)
14+
- [ReHash](#rehash)
15+
- [Segment选取](#segment%E9%80%89%E5%8F%96)
16+
- [Segment.put](#segmentput)
17+
- [线程安全性](#%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%A7)
18+
- [过期/垃圾缓存清理](#%E8%BF%87%E6%9C%9F%E5%9E%83%E5%9C%BE%E7%BC%93%E5%AD%98%E6%B8%85%E7%90%86)
19+
- [垃圾缓存](#%E5%9E%83%E5%9C%BE%E7%BC%93%E5%AD%98)
20+
- [善后](#%E5%96%84%E5%90%8E)
21+
- [writeQueue移除](#writequeue%E7%A7%BB%E9%99%A4)
22+
- [accessQueue移除](#accessqueue%E7%A7%BB%E9%99%A4)
23+
- [加载终止](#%E5%8A%A0%E8%BD%BD%E7%BB%88%E6%AD%A2)
24+
- [移除算法](#%E7%A7%BB%E9%99%A4%E7%AE%97%E6%B3%95)
25+
- [过期缓存](#%E8%BF%87%E6%9C%9F%E7%BC%93%E5%AD%98)
26+
- [扩容](#%E6%89%A9%E5%AE%B9)
27+
- [设值](#%E8%AE%BE%E5%80%BC)
28+
- [get(key)](#getkey)
29+
- [get(key,hash,loader)](#getkeyhashloader)
30+
- [参考](#%E5%8F%82%E8%80%83)
31+
- [总结](#%E6%80%BB%E7%BB%93)
32+
33+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
34+
135
# 创建
236

337
以CacheLoader的方式为例:

note/spring-aop.md

+77
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,80 @@
1+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4+
5+
- [开头](#%E5%BC%80%E5%A4%B4)
6+
- [aop:config](#aopconfig)
7+
- [解析](#%E8%A7%A3%E6%9E%90)
8+
- [proxy-target-class & expose-proxy](#proxy-target-class--expose-proxy)
9+
- [aop:pointcut](#aoppointcut)
10+
- [aop:advisor](#aopadvisor)
11+
- [aop:aspect](#aopaspect)
12+
- [aop:declare-parents](#aopdeclare-parents)
13+
- [其它](#%E5%85%B6%E5%AE%83)
14+
- [MethodLocatingFactoryBean](#methodlocatingfactorybean)
15+
- [SimpleBeanFactoryAwareAspectInstanceFactory](#simplebeanfactoryawareaspectinstancefactory)
16+
- [总结](#%E6%80%BB%E7%BB%93)
17+
- [代理子类生成](#%E4%BB%A3%E7%90%86%E5%AD%90%E7%B1%BB%E7%94%9F%E6%88%90)
18+
- [入口](#%E5%85%A5%E5%8F%A3)
19+
- [postProcessBeforeInstantiation](#postprocessbeforeinstantiation)
20+
- [调用时机](#%E8%B0%83%E7%94%A8%E6%97%B6%E6%9C%BA)
21+
- [源码](#%E6%BA%90%E7%A0%81)
22+
- [应该代理 ?](#%E5%BA%94%E8%AF%A5%E4%BB%A3%E7%90%86-)
23+
- [基础类检测](#%E5%9F%BA%E7%A1%80%E7%B1%BB%E6%A3%80%E6%B5%8B)
24+
- [跳过类检测](#%E8%B7%B3%E8%BF%87%E7%B1%BB%E6%A3%80%E6%B5%8B)
25+
- [AOP逻辑](#aop%E9%80%BB%E8%BE%91)
26+
- [Advisor寻找](#advisor%E5%AF%BB%E6%89%BE)
27+
- [适用性检测](#%E9%80%82%E7%94%A8%E6%80%A7%E6%A3%80%E6%B5%8B)
28+
- [检测结果缓存](#%E6%A3%80%E6%B5%8B%E7%BB%93%E6%9E%9C%E7%BC%93%E5%AD%98)
29+
- [TargetSource](#targetsource)
30+
- [postProcessAfterInitialization](#postprocessafterinitialization)
31+
- [Advisor寻找](#advisor%E5%AF%BB%E6%89%BE-1)
32+
- [适用性判断](#%E9%80%82%E7%94%A8%E6%80%A7%E5%88%A4%E6%96%AD)
33+
- [引入](#%E5%BC%95%E5%85%A5)
34+
- [其它](#%E5%85%B6%E5%AE%83-1)
35+
- [Advisor扩展](#advisor%E6%89%A9%E5%B1%95)
36+
- [排序](#%E6%8E%92%E5%BA%8F)
37+
- [创建](#%E5%88%9B%E5%BB%BA)
38+
- [JDK动态代理 or Cglib](#jdk%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86-or-cglib)
39+
- [JDK动态代理](#jdk%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86)
40+
- [equals & hashCode](#equals--hashcode)
41+
- [链式调用](#%E9%93%BE%E5%BC%8F%E8%B0%83%E7%94%A8)
42+
- [Cglib](#cglib)
43+
- [aop:scoped-proxy](#aopscoped-proxy)
44+
- [解析](#%E8%A7%A3%E6%9E%90-1)
45+
- [入口](#%E5%85%A5%E5%8F%A3-1)
46+
- [装饰](#%E8%A3%85%E9%A5%B0)
47+
- [代理生成](#%E4%BB%A3%E7%90%86%E7%94%9F%E6%88%90)
48+
- [Advisor](#advisor)
49+
- [引入](#%E5%BC%95%E5%85%A5-1)
50+
- [例子](#%E4%BE%8B%E5%AD%90)
51+
- [自定义Scope](#%E8%87%AA%E5%AE%9A%E4%B9%89scope)
52+
- [配置](#%E9%85%8D%E7%BD%AE)
53+
- [测试](#%E6%B5%8B%E8%AF%95)
54+
- [原理](#%E5%8E%9F%E7%90%86)
55+
- [doGetBean](#dogetbean)
56+
- [代理子类](#%E4%BB%A3%E7%90%86%E5%AD%90%E7%B1%BB)
57+
- [CallbackFilter & Callback](#callbackfilter--callback)
58+
- [Callback](#callback)
59+
- [CallbackFilter](#callbackfilter)
60+
- [回调](#%E5%9B%9E%E8%B0%83)
61+
- [aop:aspectj-autoproxy](#aopaspectj-autoproxy)
62+
- [属性](#%E5%B1%9E%E6%80%A7)
63+
- [proxy-target-class](#proxy-target-class)
64+
- [expose-proxy](#expose-proxy)
65+
- [栗子](#%E6%A0%97%E5%AD%90)
66+
- [切面](#%E5%88%87%E9%9D%A2)
67+
- [被代理类](#%E8%A2%AB%E4%BB%A3%E7%90%86%E7%B1%BB)
68+
- [配置](#%E9%85%8D%E7%BD%AE-1)
69+
- [解析](#%E8%A7%A3%E6%9E%90-2)
70+
- [原理](#%E5%8E%9F%E7%90%86-1)
71+
- [总结](#%E6%80%BB%E7%BB%93-1)
72+
- [拾遗](#%E6%8B%BE%E9%81%97)
73+
- [AOP切面的坑](#aop%E5%88%87%E9%9D%A2%E7%9A%84%E5%9D%91)
74+
- [总结](#%E6%80%BB%E7%BB%93-2)
75+
76+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
77+
178
# 开头
279

380
aop部分的解析器由AopNamespaceHandler注册,其init方法:

note/spring-boot.md

+22
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4+
5+
- [SpringApplication](#springapplication)
6+
- [web环境检测](#web%E7%8E%AF%E5%A2%83%E6%A3%80%E6%B5%8B)
7+
- [ApplicationContextInitializer](#applicationcontextinitializer)
8+
- [ApplicationListener](#applicationlistener)
9+
- [SpringApplicationRunListener](#springapplicationrunlistener)
10+
- [run](#run)
11+
- [starting](#starting)
12+
- [环境准备](#%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87)
13+
- [属性来源](#%E5%B1%9E%E6%80%A7%E6%9D%A5%E6%BA%90)
14+
- [profile配置](#profile%E9%85%8D%E7%BD%AE)
15+
- [environmentPrepared](#environmentprepared)
16+
- [配置文件加载](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A0%E8%BD%BD)
17+
- [SpringApplicationJsonEnvironmentPostProcessor](#springapplicationjsonenvironmentpostprocessor)
18+
- [CloudFoundryVcapEnvironmentPostProcessor](#cloudfoundryvcapenvironmentpostprocessor)
19+
- [ConfigFileApplicationListener](#configfileapplicationlistener)
20+
21+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
22+
123
# SpringApplication
224

325
启动程序首先初始化了一个SpringApplication对象。来看一看在它的构造器了发生了什么。

0 commit comments

Comments
 (0)