当前位置:网站首页 > 技术博客 > 正文

jdk元注解

1. 目录

1. 2.

目录 .........................................................................................................................................................1

JVM ....................................................................................................................................................... 19

2.1. 线程 ...................................................................................................................................................... 20

2.2. JVM 内存区域 ..................................................................................................................................... 21

2.2.1. 程序计数器(线程私有) ................................................................................................................ 22

2.2.2. 虚拟机栈(线程私有) .................................................................................................................... 22

2.2.3. 本地方法区(线程私有) ................................................................................................................ 23

2.2.4. 堆(Heap-线程共享)-运行时数据区 ...................................................................................... 23

2.2.5. 方法区/永久代(线程共享) ..................................................................................................... 23

2.3. JVM 运行时内存 ................................................................................................................................. 24 2.3.1. 新生代 .......................................................................................................................................... 24

2.3.1.1. 2.3.1.2.

2.3.1.3.

2.3.1.4.

Eden 区 .................................................................................................................................................... 24 ServivorFrom........................................................................................................................................... 24

ServivorTo .............................................................................................................................................. 24

MinorGC 的过程(复制->清空->互换) ....................................................................................... 24

1:eden、servicorFrom 复制到 ServicorTo,年龄+1................................................................................... 25

2:清空 eden、servicorFrom............................................................................................................................. 25 3:ServicorTo 和 ServicorFrom 互换................................................................................................................25

2.3.3.1.

2.4.1. 如何确定垃圾 .............................................................................................................................. 26 2.4.1.1. 引用计数法............................................................................................................................................... 26 2.4.1.2. 可达性分析............................................................................................................................................... 26

2.3.2. 2.3.3.

老年代 .......................................................................................................................................... 25 永久代 .......................................................................................................................................... 25

JAVA

8 与

数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................................................................................................................. 26

2.4.2. 2.4.3.

2.4.4. 2.4.5.

2.4.5.1. 2.4.5.2.

2.6.1.

2.6.1.1.

2.6.1.2.

2.7.1. 2.7.2. 2.7.3. 2.7.4. 2.7.5. 2.7.6.

2.7.6.1.

标记清除算法(Mark-Sweep) .............................................................................................. 27 复制算法(copying)................................................................................................................. 27

标记整理算法(Mark-Compact).................................................................................................. 28 分代收集算法 .............................................................................................................................. 29 新生代与复制算法 .............................................................................................................................. 29 老年代与标记复制算法 ......................................................................................................................29 2.5.

JAVA

四中引用类型 ........................................................................................................................... 30

2.5.1. 强引用 .......................................................................................................................................... 30

2.5.2. 软引用 .......................................................................................................................................... 30

2.5.3. 弱引用 .......................................................................................................................................... 30

2.5.4. 虚引用 .......................................................................................................................................... 30

2.6. GC 分代收集算法 VS 分区收集算法................................................................................................ 30

分代收集算法 .............................................................................................................................. 30 在新生代-复制算法............................................................................................................................. 30 在老年代-标记整理算法.....................................................................................................................30

分区收集算法 .............................................................................................................................. 31 2.7. GC 垃圾收集器 ................................................................................................................................... 31

2.6.2.

Serial 垃圾收集器(单线程、复制算法)................................................................................ 31 ParNew 垃圾收集器(Serial+多线程) ................................................................................... 31 .......................................................... 32 ........................................................................... 32 ......................................................................... 33 ..................................................................................... 33 初始标记 .............................................................................................................................................. 33

Parallel Scavenge 收集器(多线程复制算法、高效)

Serial Old 收集器(单线程标记整理算法 )

Parallel Old 收集器(多线程标记整理算法)

CMS 收集器(多线程标记清除算法)

2.7.6.2. 2.7.6.3. 2.7.6.4.

2.8.1. 2.8.2. 2.8.3. 2.8.4. 2.8.5. 2.8.1. 2.8.2.

2.8.2.1.

2.8.2.2.

2.8.3. 2.8.4. 2.8.5.

并发标记 .............................................................................................................................................. 34 重新标记 .............................................................................................................................................. 34 并发清除 .............................................................................................................................................. 34

G1 收集器 .................................................................................................................................... 34 2.8.

JAVA

IO/NIO ....................................................................................................................................... 34

2.7.7.

2.9.

2.9.2.

2.9.2.1. 2.9.2.2. 2.9.2.3.

2.9.3. 2.9.4.

2.9.4.1. 2.9.4.2.

阻塞IO模型

................................................................................................................................ 34 ............................................................................................................................ 35 ........................................................................................................................ 35 ........................................................................................................................ 36 ................................................................................................................................ 36 .................................................................................................................................. 36 .................................................................................................................................... 37 NIO 的缓冲区 .....................................................................................................................................38

NIO 的非阻塞 .....................................................................................................................................38 ....................................................................................................................................... 40

非阻塞 IO 模型

多路复用 IO 模型

信号驱动 IO 模型

............................................................................................................................................ 40 ........................................................................................................................................ 40 JVM 类加载机制 ................................................................................................................................. 41

2.9.1.1. 2.9.1.2. 2.9.1.3. 2.9.1.4.

2.9.1.5.

2.9.1.6.

2.9.1.7.

2.9.1.8.

加载 .......................................................................................................................................................... 41 验证 .......................................................................................................................................................... 41 准备 .......................................................................................................................................................... 41 解析 .......................................................................................................................................................... 41

符号引用 .............................................................................................................................................. 42

直接引用 .............................................................................................................................................. 42 初始化 ...................................................................................................................................................... 42 类构造器 .............................................................................................................................. 42 类加载器 ...................................................................................................................................... 42 启动类加载器(Bootstrap ClassLoader) ......................................................................................... 43 扩展类加载器(Extension ClassLoader)..........................................................................................43 应用程序类加载器(Application ClassLoader): ..........................................................................43 双亲委派 ...................................................................................................................................... 43 OSGI(动态模型系统) ............................................................................................................ 44

动态改变构造 ...................................................................................................................................... 44 模块化编程与热插拔 .......................................................................................................................... 44

3.

JAVA

集合............................................................................................................................................45

3.1. 接口继承关系和实现 .......................................................................................................................... 45

3.2. LIST ....................................................................................................................................................... 47

3.2.1. ArrayList(数组)....................................................................................................................... 47

3.2.2. Vector(数组实现、线程同步) ............................................................................................... 47

3.2.3. LinkList(链表) ......................................................................................................................... 47

3.3. SET ....................................................................................................................................................... 48

3.3.1.1. 3.3.1.2.

HashSet(Hash 表) ............................................................................................................................. 48 TreeSet(二叉树) ................................................................................................................................ 49

LinkHashSet(HashSet+LinkedHashMap) ................................................................................... 49

3.3.1.3.

3.4. MAP....................................................................................................................................................... 50

3.4.1. HashMap(数组+链表+红黑树)............................................................................................. 50 3.4.1.1.

JAVA

7 实现 ............................................................................................................................................. 50 3.4.1.2.

JAVA

8 实现 ............................................................................................................................................. 51

3.4.2. ConcurrentHashMap.................................................................................................................. 51

3.4.2.1. 3.4.2.2. 3.4.2.3. 3.4.2.4.

Segment 段.............................................................................................................................................. 51 线程安全(Segment 继承 ReentrantLock 加锁) .............................................................................. 51 并行度(默认 16) ................................................................................................................................. 52

Java

8 实现 (引入了红黑树) .............................................................................................................. 52

13/04/2018

Page 2 of 283

异步IO模型

JAVA

IO 包

JAVA

NIO

Channel

Buffer

Selector

3.4.3. HashTable(线程安全) ........................................................................................................... 53

3.4.4. TreeMap(可排序) .................................................................................................................. 53

3.4.5. LinkHashMap(记录插入顺序) .............................................................................................. 53

4.

JAVA

多线程并发.................................................................................................................................54

4.1.1.

JAVA

并发知识库 ....................................................................................................................... 54

4.1.2.

JAVA

线程实现/创建方式 .......................................................................................................... 54

4.1.2.1. 4.1.2.2. 4.1.2.3. 4.1.2.4.

继承 Thread 类 ........................................................................................................................................ 54 实现 Runnable 接口。............................................................................................................................ 54 ExecutorService、Callable、Future 有返回值线程.............................................................55 基于线程池的方式................................................................................................................................... 56

4.1.3. 4 种线程池 ................................................................................................................................... 56

4.1.3.1. 4.1.3.2. 4.1.3.3.

newSingleThreadExecutor ................................................................................................................. 58 4.1.4. 线程生命周期(状态) .................................................................................................................... 58

4.1.3.4.

4.1.4.1. 4.1.4.2. 4.1.4.3. 4.1.4.4.

新建状态(NEW) ................................................................................................................................. 58 就绪状态(RUNNABLE): ................................................................................................................. 59 运行状态(RUNNING): .................................................................................................................... 59 阻塞状态(BLOCKED):....................................................................................................................59

4.1.9.5.

4.1.9.6.

4.1.9.7. 13/04/2018

Semaphore 信号量 ................................................................................................................................. 68 ................................................................................................................................. 68 ................................................................................................................................................................ 68 ........................................................................................................................... 69 AtomicInteger .......................................................................................................................................... 69

Page 3 of 283

newCachedThreadPool

......................................................................................................................... 57 ............................................................................................................................. 57 newScheduledThreadPool .................................................................................................................... 58

newFixedThreadPool

等待阻塞(o.wait->等待对列):

...................................................................................................................... 59 .......................................................................................................................................... 59 ............................................................................................................................................ 59 线程死亡(DEAD)................................................................................................................................ 59 ............................................................................................................................................................... 59 ............................................................................................................................................................... 59 ............................................................................................................................................................... 59 4.1.5. 终止线程 4 种方式 ...................................................................................................................... 60

同步阻塞(lock->锁池)

其他阻塞(sleep/join)

4.1.4.5.

4.1.5.1. 4.1.5.2. 4.1.5.3. 4.1.5.4.

正常运行结束........................................................................................................................................... 60 使用退出标志退出线程...........................................................................................................................60 Interrupt 方法结束线程 ........................................................................................................................... 60 stop 方法终止线程(线程不安全)....................................................................................................... 61

正常结束. 异常结束.

调用 stop

4.1.6. sleep 与 wait 区别....................................................................................................................... 61

4.1.7. start 与 run 区别 .......................................................................................................................... 62

4.1.8.

JAVA

后台线程 ........................................................................................................................... 62

4.1.9.

JAVA

锁 ....................................................................................................................................... 63

4.1.9.1. 4.1.9.2. 4.1.9.3.

乐观锁 ...................................................................................................................................................... 63 悲观锁 ...................................................................................................................................................... 63 自旋锁 ...................................................................................................................................................... 63

自旋锁的优缺点....................................................................................................................................................63 自旋锁时间阈值(1.6 引入了适应性自旋锁) .................................................................................................. 63 自旋锁的开启........................................................................................................................................................ 64

4.1.9.4.

Synchronized 同步锁.............................................................................................................................. 64 ....................................................................................................................................... 64 ....................................................................................................................................... 64

Synchronized 作用范围 Synchronized

核心

组件

Synchronized 实现

............................................................................................................................................... 64 ReentrantLock......................................................................................................................................... 66 ........................................................................................................................................... 66 ................................................................................................................................................................ 66 .................................................................................................................................................................... 67 ........................................................................................................................ 67 ............................................................................................................................................. 67 ......................................................................................................... 68 tryLock 和 lock 和 lockInterruptibly 的区别........................................................................................................ 68

Lock 接口的主要方法

非公平锁

公平锁

ReentrantLock 与 synchronized

ReentrantLock 实现

Condition 类和 Object 类锁方法区别区别

实现互斥锁(计数器为 1)

代码实现

Semaphore 与 ReentrantLock

4.1.9.8. 4.1.9.9.

4.1.9.10. 4.1.9.11.

4.1.9.12.

4.1.9.14. 4.1.9.15. 4.1.9.16.

可重入锁(递归锁)............................................................................................................................... 69 公平锁与非公平锁................................................................................................................................... 70 ..................................................................................................................................................... 70 ........................................................................................................................................... 70 ReadWriteLock 读写锁......................................................................................................................70 ........................................................................................................................................................................ 70 ........................................................................................................................................................................ 70

公平锁(Fair)

非公平锁(Nonfair)

读锁

写锁

共享锁和独占锁 .................................................................................................................................. 70 .................................................................................................................................................................... 70 .................................................................................................................................................................... 70

重量级锁(Mutex Lock)................................................................................................................71

轻量级锁 .............................................................................................................................................. 71 锁升级.................................................................................................................................................................... 71

独占锁 共享锁

4.1.9.13.

偏向锁 .................................................................................................................................................. 71 分段锁 .................................................................................................................................................. 71 锁优化 .................................................................................................................................................. 71

减少锁持有时间

.................................................................................................................................................... 72 ............................................................................................................................................................ 72 .................................................................................................................................................................... 72 .................................................................................................................................................................... 72 .................................................................................................................................................................... 72 4.1.10. 线程基本方法..............................................................................................................................72

减小锁粒度

锁分离 锁粗化

锁消除

4.1.10.1. 4.1.10.2. 4.1.10.3. 4.1.10.4. 4.1.10.5. 4.1.10.6. 4.1.10.7. 4.1.10.8.

线程等待(wait) ............................................................................................................................... 73 线程睡眠(sleep)............................................................................................................................. 73 线程让步(yield) .............................................................................................................................. 73 线程中断(interrupt)........................................................................................................................ 73 Join 等待其他线程终止 ...................................................................................................................... 74 为什么要用 join()方法? .................................................................................................................... 74 线程唤醒(notify)............................................................................................................................. 74 其他方法: .......................................................................................................................................... 74

4.1.11. 线程上下文切换..........................................................................................................................75

4.1.11.1. 4.1.11.2. 4.1.11.3. 4.1.11.4. 4.1.11.5. 4.1.11.6. 4.1.11.7.

进程......................................................................................................................................................75 上下文..................................................................................................................................................75 寄存器..................................................................................................................................................75 程序计数器 .......................................................................................................................................... 75 PCB-“切换桢”................................................................................................................................. 75 上下文切换的活动: .......................................................................................................................... 76 引起线程上下文切换的原因 .............................................................................................................. 76

4.1.12. 同步锁与死锁..............................................................................................................................76 4.1.12.1. 同步锁 .................................................................................................................................................. 76 4.1.12.2. 死锁 ...................................................................................................................................................... 76

4.1.13. 线程池原理..................................................................................................................................76

4.1.14.1.

4.1.14.2. 4.1.14.3. 4.1.14.4. 4.1.14.5. 4.1.14.6. 4.1.14.7. 4.1.14.8.

4.1.13.1. 4.1.13.2. 4.1.13.3. 4.1.13.4.

线程复用

.............................................................................................................................................. 76 ...................................................................................................................................... 76 .............................................................................................................................................. 78 ......................................................................................................................... 78 4.1.14.

JAVA

阻塞队列原理.................................................................................................................... 79

线程池的组成

拒绝策略

Java

线程池工作过程

阻塞队列的主要方法

.......................................................................................................................... 80 ............................................................................................................................................................ 80 .................................................................................................................................................... 81

............................................................................................................................. 81 ....................................................................................... 82 ......................................................................... 82 .............................................................. 82 .......................................................................................... 82 .............................................................. 83 ...................................................................................................................... 83

插入操作:

获取数据操作:

Java

中的阻塞队列

ArrayBlockingQueue(公平、非公平)

LinkedBlockingQueue(两个独立锁提高并发)

PriorityBlockingQueue(compareTo 排序实现优先)

DelayQueue(缓存失效、定时任务 )

SynchronousQueue(不存储数据、可用于传递数据)

LinkedTransferQueue

13/04/2018

Page 4 of 283

4.1.14.9. LinkedBlockingDeque ..................................................................................................................... 83 4.1.15. CyclicBarrier、CountDownLatch、Semaphore 的用法 ........................................................ 84

4.1.15.1. 4.1.15.2. 4.1.15.3.

................................................................................................ 84 ............................................... 84 ....................................................................... 85

CountDownLatch(线程计数器 )

CyclicBarrier(回环栅栏-等待至 barrier 状态再全部同时执行)

Semaphore(信号量-控制同时访问的线程个数)

4.1.16. volatile 关键字的作用(变量可见性、禁止重排序) ............................................................. 87 变量可见性............................................................................................................................................................ 87 禁止重排序............................................................................................................................................................ 87

..................................................................................................................... 87 ................................................................................................................................................................ 87 4.1.17. 如何在两个线程之间共享数据...................................................................................................88 将数据抽象成一个类,并将数据的操作作为这个类的方法.............................................................................88 .................................................................................................................. 89

4.1.18. ThreadLocal 作用( )........................................................................................ 90 .............................................................................................................. 90 ................................................................................................................................................................ 91

4.1.19. synchronized 和 ReentrantLock 的区别 .................................................................................. 91

4.1.19.1. .................................................................................................................................. 91

4.1.19.2. .................................................................................................................................. 92 4.1.20. ConcurrentHashMap 并发......................................................................................................... 92 4.1.20.1. .......................................................................................................................................... 92 4.1.20.2. .......................................................................................................... 92 ................................................. 93 4.1.21.

Java

中用到的线程调度 ............................................................................................................. 93

比 sychronized 更轻量级的同步锁

适用场景

Runnable 对象作为一个类的内部类

ThreadLocalMap(线程的一个属性)

线程本地存储

使用场景

两者的共同点:

两者的不同点:

4.1.21.1. 4.1.21.2. 4.1.21.3. 4.1.21.4.

减小锁粒度

...................................................................................................................................... 93 ...................................................................................................................................... 93 ............................................................................................. 94 ..................................................................................................................... 94 4.1.22. 进程调度算法..............................................................................................................................94

4.1.22.1. 4.1.22.2. 4.1.22.3.

...................................................................................................................................... 94 ...................................................................................................................... 95 .............................................................................................................. 96 )..................................................................96 .......................................................................................................................................... 96 ........................................................................... 97 ............................................................................................................................................. 98 4.1.24. 什么是AQS(抽象的队列同步器).........................................................................................98

Exclusive 独占资源-ReentrantLock ................................................................................................................... 99 Share 共享资源-Semaphore/CountDownLatch ............................................................................................... 99 同步器的实现是 ABS

核心

(state 资源状态计数) ....................................................................................... 100 ReentrantReadWriteLock 实现独占和共享两种方式.....................................................................................100

5.

JAVA

基础..........................................................................................................................................101

4.1.23. 什么是CAS( 4.1.23.1.

4.1.23.2. 4.1.23.3.

5.1.1.

5.1.1.1. 5.1.1.2.

5.1.1.3.

5.1.1.4.

JAVA

异常分类及处理.............................................................................................................. 101 .................................................................................................................................................... 101

............................................................................................................................................ 101 ..................................................................................................................................................................... 101 ........................................................................... 101 ................................................................................................................................ 102 ......................................................... 102 .................................................................................................................. 102 ............................................................................................................ 102

13/04/2018

Page 5 of 283

ConcurrentHashMap 分段锁

ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成

抢占式调度:

协同式调度:

JVM 的线程调度实现(抢占式调度)

线程让出 cpu 的情况:

优先调度算法

高优先权优先调度算法

基于时间片的轮转调度算法

比较并交换-乐观锁机制-锁自旋

概念及特性

原子包

java

.util.concurrent.atomic(锁自旋)

ABA 问题

概念

异常分类

Error

Exception(RuntimeException、CheckedException)

异常的处理方式

遇到问题不进行具体处理,而是继续抛给调用者 (throw,throws)

try catch 捕获异常针对性处理方式

Throw 和 throws 的区别:

位置不同

功能不同:

5.1.2.

5.1.2.1. 5.1.2.2. 5.1.2.3.

5.1.2.4.

5.1.2.5. 5.1.2.6.

5.1.2.7.

5.1.3.

5.1.4.1. 5.1.4.2. 5.1.4.3. 5.1.4.4.

@Documented 描述-

java

doc

@Inherited 阐述了某个被标注的类型是被继承的

5.1.5.1.

5.1.5.2. 5.1.5.3. 5.1.5.4.

泛型方法() ............................................................................................................................. 112 泛型类 ............................................................................................................................................. 112 类型通配符? .......................................................................................................................................... 113 类型擦除 ................................................................................................................................................ 113

.............................................................................................................................................................. 102 .......................................................................................................................................................... 102

JAVA

反射 ................................................................................................................................. 103 ............................................................................................................................................ 103

............................................................ 103

................................................................................................................................ 103 .................................................................................................................................. 103 ...................................................................................................................... 104

.................................................................................................................................... 104 ............................................................................ 104 ..................................................................... 104 ............................................................................................................ 104

....................................................................................................................... 104 ................................................................................ 104 ............................................................................ 104

动态语言

反射机制概念 (运行状态中知道类所有的属性和方法)

反射的应用场合

编译时类型和运行时类型

的编译时类型无法获取具体方法

Java

反射 API

反射 API 用来生成 JVM 中的类、接口或则对象的信息。

反射使用步骤(获取 Class 对象、调用对象方法)

获取 Class 对象的 3 种方法

调用某个对象的 getClass()方法

调用某个类的 class 属性来获取该类对应的 Class 对象

使用 Class 类中的 forName()静态方法(最安全/性能最好)

创建对象的两种方法

Class 对象的 newInstance()

调用 Constructor 对象的 newInstance()

........................................................................................................................ 105 ............................................................................................................................. 105 .......................................................................................................... 105

JAVA 注解

................................................................................................................................. 106 5.1.3.1. 概念 ........................................................................................................................................................ 106 5.1.3.2. 4 种标准

注解

...................................................................................................................................... 106 @Target 修饰的对象范围 ................................................................................................................................. 106 @Retention 定义 被保留的时间长短 ............................................................................................................... 106 ................................................................................................................................ 106 .............................................................................................. 106 5.1.3.3.

注解

处理器............................................................................................................................................. 107 5.1.4.

JAVA

内部类 ............................................................................................................................. 109

静态内部类............................................................................................................................................. 109 成员内部类............................................................................................................................................. 110 局部内部类(定义在方法中的类) ..................................................................................................... 110 匿名内部类(要继承一个父类或者实现一个接口、直接使用 new 来生成一个对象的引用) ..... 111

5.1.5.

JAVA

泛型 ................................................................................................................................. 112

5.1.6.

JAVA

序列化(创建可复用的

Java

对象) ................................................................................. 113 .................................................................................................... 113 ................................................................................................. 113 .................................................................................................................................. 113 Serializable 实现序列化 .................................................................................................................................... 113 ............................................... 113 ................................................................................................ 113 ............................................................................................................................................................. 113 .................................................................................................................................. 114 .............................................................................................................................................. 114 ............................................................................................ 114 5.1.7.

JAVA

复制 ................................................................................................................................. 114

5.1.7.1. ......................................................................................................................................... 114 5.1.7.2. ..................................................................................... 114 5.1.7.3. ................................................................................................. 115 5.1.7.4. ........................................................................................................ 115

6. SPRING 原理 ..................................................................................................................................... 116 6.1.1. Spring 特点................................................................................................................................ 116

6.1.1.1. 轻量级 ................................................................................................................................................ 116 13/04/2018 Page 6 of 283

保存(持久化)对象及其状态到内存或者磁盘

序列化对象以字节数组保持-静态成员不保存

序列化用户远程对象传输

ObjectOutputStream 和 ObjectInputStream 对对象进行序列化及反序列化

writeObject 和 readObject 自定义序列化策略

序列化 ID

序列化并不保存静态变量

序列化子父类说明

Transient 关键字阻止该变量被序列化到文件中

直接赋值复制

浅复制(复制引用但不复制引用的对象)

深复制(复制对象和其应用对象)

序列化(深 clone 一中实现)

6.1.1.2. 6.1.1.3. 6.1.1.4. 6.1.1.5.

6.1.2. 6.1.3. 6.1.4. 6.1.5. 6.1.6. 6.1.7.

............................................................................................................................................ 116

............................................................................................................................................ 116 .................................................................................................................................................... 116 ............................................................................................................................................ 116

Spring

核心

组件........................................................................................................................ 117 Spring 常用模块........................................................................................................................ 117 Spring 主要包............................................................................................................................ 118 Spring 常用

注解

........................................................................................................................ 118 Spring 第三方结合.................................................................................................................... 119 Spring IOC 原理........................................................................................................................ 120

6.1.7.1. 6.1.7.2. 6.1.7.3.

概念 ........................................................................................................................................................ 120 Spring 容器高层视图 ............................................................................................................................ 120 IOC 容器实现......................................................................................................................................... 120

控制反转

面向切面

容器

框架集合

BeanFactory-框架基础设施 .............................................................................................................................. 120

1.1..1.1.1 1.1..1.1.2 1.1..1.1.3

1.1..1.1.4 1.1..1.1.5

1.1..1.1.6 1.1..1.1.7 1.1..1.1.8

BeanDefinitionRegistry 注册表................................................................................................. 121 BeanFactory 顶层接口 .............................................................................................................. 121 ListableBeanFactory ................................................................................................................. 121

HierarchicalBeanFactory 父子级联.......................................................................................... 121 ConfigurableBeanFactory......................................................................................................... 121

AutowireCapableBeanFactory 自动装配 ................................................................................ 122 SingletonBeanRegistry 运行期间注册单例 Bean................................................................... 122 依赖日志框框.............................................................................................................................122 ApplicationContext 面向开发应用 .................................................................................................................... 122 WebApplication 体系架构 ................................................................................................................................. 123 6.1.7.4. Spring Bean 作用域.............................................................................................................................. 123 singleton:单例模式(多线程下不安全) ...................................................................................................... 123 prototype:原型模式每次使用时创建 ................................................................................................................ 124 Request:一次 request 一个实例 .................................................................................................................... 124 session ................................................................................................................................................................ 124 global Session....................................................................................................................................................124 6.1.7.5. Spring Bean 生命周期.......................................................................................................................... 124 实例化.................................................................................................................................................................. 124 IOC依赖注入......................................................................................................................................................124 setBeanName 实现............................................................................................................................................ 124 BeanFactoryAware 实现 ................................................................................................................................... 124 ApplicationContextAware 实现......................................................................................................................... 125

postProcessBeforeInitialization 接口实现-初始化预处理.......................................................................... 125 init-method .......................................................................................................................................................... 125

postProcessAfterInitialization ........................................................................................................................... 125 Destroy 过期自动清理阶段 ............................................................................................................................... 125 destroy-method 自配置清理 ............................................................................................................................. 125

6.1.7.6. Spring 依赖注入四种方式 .................................................................................................................... 126 构造器注入.......................................................................................................................................................... 126 setter方法注入...................................................................................................................................................127 静态工厂注入...................................................................................................................................................... 127 实例工厂.............................................................................................................................................................. 127

6.1.7.7. 5 种不同方式的自动装配...................................................................................................................... 128 6.1.8. Spring APO 原理 ...................................................................................................................... 129

6.1.8.1. 6.1.8.2. 6.1.8.1.

概念 ........................................................................................................................................................ 129 AOP

核心

概念 ....................................................................................................................................... 129 AOP 两种代理方式 ............................................................................................................................... 130

JDK 动态接口代理 ............................................................................................................................................. 130

CGLib 动态代理.................................................................................................................................................. 131 6.1.8.2. 实现原理 ................................................................................................................................................ 131 6.1.9. Spring MVC原理......................................................................................................................132 6.1.9.1. MVC 流程............................................................................................................................................... 132 Http 请求到 DispatcherServlet ....................................................................................................................... 133 HandlerMapping 寻找处理器............................................................................................................................133 调用处理器 Controller........................................................................................................................................ 133

13/04/2018 Page 7 of 283

Controller 调用业务逻辑处理后,返回 ModelAndView.................................................................................133 DispatcherServlet 查询 ModelAndView .......................................................................................................... 133 ModelAndView 反馈浏览器 HTTP ................................................................................................................... 133

6.1.9.1. MVC 常用

注解

....................................................................................................................................... 133 6.1.10. Spring Boot 原理....................................................................................................................... 134 1. 创建独立的 Spring 应用程序............................................................................................................................. 134 2.嵌入的Tomcat,无需部署WAR文件.............................................................................................................134 3. 简化 Maven 配置 ................................................................................................................................................ 134 4. 自动配置 Spring ................................................................................................................................................. 134 5. 提供生产就绪型功能,如指标,健康检查和外部配置................................................................................... 134 6. 绝对没有代码生成和对 XML 没有要求配置 [1] ............................................................................................... 134 6.1.11. JPA 原理 .................................................................................................................................... 134 6.1.11.1. 事务....................................................................................................................................................134

6.1.11.2. 6.1.11.1. 6.1.11.1.

本地事务 ............................................................................................................................................ 134 分布式事务 ........................................................................................................................................ 135 两阶段提交 ........................................................................................................................................ 136

1 准备阶段........................................................................................................................................................... 136

2 提交阶段:....................................................................................................................................................... 136 6.1.12. Mybatis 缓存.............................................................................................................................. 137 6.1.12.1. Mybatis 的一级缓存原理(sqlsession 级别)..............................................................................138 6.1.12.2. 二级缓存原理(mapper 基本).....................................................................................................138 具体使用需要配置: .......................................................................................................................................... 139 6.1.13. Tomcat 架构 .............................................................................................................................. 139

7. 微服务 ................................................................................................................................................. 140 7.1.1. 服务注册发现 ............................................................................................................................ 140

  • 上一篇: 红黑树 stl
  • 下一篇: 霍夫曼树代码
  • 版权声明


    相关文章:

  • 红黑树 stl2025-04-07 11:00:59
  • 树莓派3b+配置参数2025-04-07 11:00:59
  • 汇编语言零基础教程2025-04-07 11:00:59
  • rsa加解密过程是什么2025-04-07 11:00:59
  • img标签使用2025-04-07 11:00:59
  • 霍夫曼树代码2025-04-07 11:00:59
  • linux sac2025-04-07 11:00:59
  • java注解是什么意思2025-04-07 11:00:59
  • ju,jue2025-04-07 11:00:59
  • jsp 与js2025-04-07 11:00:59