|
1 | 1 |
|
2 | 2 |
|
3 |
| -# Spring相关教程/资料: |
| 3 | +## Spring相关教程/资料 |
4 | 4 |
|
5 |
| -> ## 官网相关 |
| 5 | +### 官网相关 |
6 | 6 |
|
7 |
| - [Spring官网](https://spring.io/) |
| 7 | +- [Spring官网](https://spring.io/) |
| 8 | +- [Spring系列主要项目](https://spring.io/projects) |
| 9 | +- [Spring官网指南](https://spring.io/guides) |
| 10 | +- [Spring Framework 4.3.17.RELEASE API](https://docs.spring.io/spring/docs/4.3.17.RELEASE/javadoc-api/) |
8 | 11 |
|
9 |
| -[Spring系列主要项目](https://spring.io/projects) |
| 12 | +## 系统学习教程 |
10 | 13 |
|
11 |
| -从配置到安全性,Web应用到大数据 - 无论您的应用程序的基础架构需求如何,都有一个Spring Project来帮助您构建它。 从小处着手,根据需要使用 - Spring是通过设计模块化的。 |
| 14 | +### 文档 |
12 | 15 |
|
13 |
| - [Spring官网指南](https://spring.io/guides) |
| 16 | +- [极客学院Spring Wiki](http://wiki.jikexueyuan.com/project/spring/transaction-management.html) |
| 17 | +- [Spring W3Cschool教程 ](https://www.w3cschool.cn/wkspring/f6pk1ic8.html) |
14 | 18 |
|
15 |
| -无论您在构建什么,这些指南都旨在尽可能快地提高您的工作效率 - 使用Spring团队推荐的最新Spring项目发布和技术。 |
| 19 | +### 视频 |
16 | 20 |
|
17 |
| - [Spring官方文档翻译(1~6章)](https://blog.csdn.net/tangtong1/article/details/51326887) |
| 21 | +- [网易云课堂——58集精通java教程Spring框架开发](http://study.163.com/course/courseMain.htm?courseId=1004475015#/courseDetail?tab=1&35) |
| 22 | +- [慕课网相关视频](https://www.imooc.com/) |
18 | 23 |
|
19 |
| -> ## 系统学习教程: |
| 24 | +- **黑马视频和尚硅谷视频(非常推荐):** 微信公众号:“**JavaGuie**”后台回复关键字 “**1**” 免费领取。 |
20 | 25 |
|
21 |
| -### 文档: |
22 | 26 |
|
23 |
| - [极客学院Spring Wiki](http://wiki.jikexueyuan.com/project/spring/transaction-management.html) |
| 27 | +## 面试必备知识点 |
24 | 28 |
|
25 |
| - [Spring W3Cschool教程 ](https://www.w3cschool.cn/wkspring/f6pk1ic8.html) |
26 |
| - |
27 |
| -### 视频: |
28 |
| - |
29 |
| -[网易云课堂——58集精通java教程Spring框架开发](http://study.163.com/course/courseMain.htm?courseId=1004475015#/courseDetail?tab=1&35) |
30 |
| - |
31 |
| - [慕课网相关视频](https://www.imooc.com/) |
32 |
| - |
33 |
| -**黑马视频(非常推荐):** |
34 |
| -微信公众号:“**Java面试通关手册**”后台回复“**资源分享第一波**”免费领取。 |
35 |
| - |
36 |
| -> ## 一些常用的东西 |
37 |
| -
|
38 |
| -[Spring Framework 4.3.17.RELEASE API](https://docs.spring.io/spring/docs/4.3.17.RELEASE/javadoc-api/) |
39 |
| - |
40 |
| -默认浏览器打开,当需要查某个类的作用的时候,可以在浏览器通过ctrl+f搜索。 |
41 |
| - |
42 |
| - |
43 |
| -# 面试必备知识点 |
44 |
| - |
45 |
| - |
46 |
| -> ## SpringAOP,IOC实现原理 |
| 29 | +### SpringAOP,IOC实现原理 |
47 | 30 |
|
48 | 31 | AOP实现原理、动态代理和静态代理、Spring IOC的初始化过程、IOC原理、自己实现怎么实现一个IOC容器?这些东西都是经常会被问到的。
|
49 | 32 |
|
50 |
| -[自己动手实现的 Spring IOC 和 AOP - 上篇](http://www.coolblog.xyz/2018/01/18/自己动手实现的-Spring-IOC-和-AOP-上篇/) |
| 33 | +推荐阅读: |
| 34 | + |
| 35 | +- [自己动手实现的 Spring IOC 和 AOP - 上篇](http://www.coolblog.xyz/2018/01/18/自己动手实现的-Spring-IOC-和-AOP-上篇/) |
51 | 36 |
|
52 |
| -[自己动手实现的 Spring IOC 和 AOP - 下篇](http://www.coolblog.xyz/2018/01/18/自己动手实现的-Spring-IOC-和-AOP-下篇/) |
| 37 | +- [自己动手实现的 Spring IOC 和 AOP - 下篇](http://www.coolblog.xyz/2018/01/18/自己动手实现的-Spring-IOC-和-AOP-下篇/) |
53 | 38 |
|
54 |
| -### AOP: |
| 39 | +### AOP |
55 | 40 |
|
56 | 41 | AOP思想的实现一般都是基于 **代理模式** ,在JAVA中一般采用JDK动态代理模式,但是我们都知道,**JDK动态代理模式只能代理接口而不能代理类**。因此,Spring AOP 会这样子来进行切换,因为Spring AOP 同时支持 CGLIB、ASPECTJ、JDK动态代理。
|
57 | 42 |
|
58 | 43 | - 如果目标对象的实现类实现了接口,Spring AOP 将会采用 JDK 动态代理来生成 AOP 代理类;
|
59 | 44 | - 如果目标对象的实现类没有实现接口,Spring AOP 将会采用 CGLIB 来生成 AOP 代理类——不过这个选择过程对开发者完全透明、开发者也无需关心。
|
60 | 45 |
|
| 46 | +推荐阅读: |
61 | 47 |
|
| 48 | +- [静态代理、JDK动态代理、CGLIB动态代理讲解](http://www.cnblogs.com/puyangsky/p/6218925.html) :我们知道AOP思想的实现一般都是基于 **代理模式** ,所以在看下面的文章之前建议先了解一下静态代理以及JDK动态代理、CGLIB动态代理的实现方式。 |
| 49 | +- [Spring AOP 入门](https://juejin.im/post/5aa7818af265da23844040c6) :带你入门的一篇文章。这篇文章主要介绍了AOP中的基本概念:5种类型的通知(Before,After,After-returning,After-throwing,Around);Spring中对AOP的支持:AOP思想的实现一般都是基于代理模式,在Java中一般采用JDK动态代理模式,Spring AOP 同时支持 CGLIB、ASPECTJ、JDK动态代理, |
| 50 | +- [Spring AOP 基于AspectJ注解如何实现AOP](https://juejin.im/post/5a55af9e518825734d14813f) : **AspectJ是一个AOP框架,它能够对java代码进行AOP编译(一般在编译期进行),让java代码具有AspectJ的AOP功能(当然需要特殊的编译器)**,可以这样说AspectJ是目前实现AOP框架中最成熟,功能最丰富的语言,更幸运的是,AspectJ与java程序完全兼容,几乎是无缝关联,因此对于有java编程基础的工程师,上手和使用都非常容易。Spring注意到AspectJ在AOP的实现方式上依赖于特殊编译器(ajc编译器),因此Spring很机智回避了这点,转向采用动态代理技术的实现原理来构建Spring AOP的内部机制(动态织入),这是与AspectJ(静态织入)最根本的区别。**Spring 只是使用了与 AspectJ 5 一样的注解,但仍然没有使用 AspectJ 的编译器,底层依是动态代理技术的实现,因此并不依赖于 AspectJ 的编译器**。 Spring AOP虽然是使用了那一套注解,其实实现AOP的底层是使用了动态代理(JDK或者CGLib)来动态植入。至于AspectJ的静态植入,不是本文重点,所以只提一提。 |
| 51 | +- [探秘Spring AOP(慕课网视频,很不错)](https://www.imooc.com/learn/869):慕课网视频,讲解的很不错,详细且深入 |
| 52 | +- [spring源码剖析(六)AOP实现原理剖析](https://blog.csdn.net/fighterandknight/article/details/51209822) :通过源码分析Spring AOP的原理 |
62 | 53 |
|
63 |
| -[※静态代理、JDK动态代理、CGLIB动态代理讲解](http://www.cnblogs.com/puyangsky/p/6218925.html) |
64 |
| - |
65 |
| -我们知道AOP思想的实现一般都是基于 **代理模式** ,所以在看下面的文章之前建议先了解一下静态代理以及JDK动态代理、CGLIB动态代理的实现方式。 |
66 |
| - |
67 |
| -[Spring AOP 入门](https://juejin.im/post/5aa7818af265da23844040c6) |
68 |
| - |
69 |
| -带你入门的一篇文章。这篇文章主要介绍了AOP中的基本概念:5种类型的通知(Before,After,After-returning,After-throwing,Around);Spring中对AOP的支持:AOP思想的实现一般都是基于代理模式,在JAVA中一般采用JDK动态代理模式,Spring AOP 同时支持 CGLIB、ASPECTJ、JDK动态代理, |
70 |
| - |
71 |
| -[※Spring AOP 基于AspectJ注解如何实现AOP](https://juejin.im/post/5a55af9e518825734d14813f) |
72 |
| - |
73 |
| - |
74 |
| -**AspectJ是一个AOP框架,它能够对java代码进行AOP编译(一般在编译期进行),让java代码具有AspectJ的AOP功能(当然需要特殊的编译器)**,可以这样说AspectJ是目前实现AOP框架中最成熟,功能最丰富的语言,更幸运的是,AspectJ与java程序完全兼容,几乎是无缝关联,因此对于有java编程基础的工程师,上手和使用都非常容易 |
75 |
| - |
76 |
| -Spring注意到AspectJ在AOP的实现方式上依赖于特殊编译器(ajc编译器),因此Spring很机智回避了这点,转向采用动态代理技术的实现原理来构建Spring AOP的内部机制(动态织入),这是与AspectJ(静态织入)最根本的区别。 |
77 |
| - |
78 |
| - |
79 |
| -[※探秘Spring AOP(慕课网视频,很不错)](https://www.imooc.com/learn/869) |
80 |
| - |
81 |
| -慕课网视频,讲解的很不错,详细且深入 |
82 |
| - |
83 |
| - |
84 |
| -[spring源码剖析(六)AOP实现原理剖析](https://blog.csdn.net/fighterandknight/article/details/51209822) |
85 |
| - |
86 |
| -通过源码分析Spring AOP的原理 |
87 |
| - |
88 |
| -### IOC: |
| 54 | +### IOC |
89 | 55 |
|
90 | 56 | Spring IOC的初始化过程:
|
91 | 57 | 
|
92 | 58 |
|
93 |
| -[[Spring框架]Spring IOC的原理及详解。](https://www.cnblogs.com/wang-meng/p/5597490.html) |
94 |
| - |
95 |
| -[Spring IOC核心源码学习](https://yikun.github.io/2015/05/29/Spring-IOC核心源码学习/) |
96 |
| - |
97 |
| -比较简短,推荐阅读。 |
98 |
| - |
99 |
| -[Spring IOC 容器源码分析](https://javadoop.com/post/spring-ioc) |
100 |
| - |
101 |
| -强烈推荐,内容详尽,而且便于阅读。 |
102 |
| - |
103 |
| -> ## Spring事务管理 |
104 |
| -
|
105 |
| -[可能是最漂亮的Spring事务管理详解](https://juejin.im/post/5b00c52ef265da0b95276091) |
| 59 | +- [[Spring框架]Spring IOC的原理及详解。](https://www.cnblogs.com/wang-meng/p/5597490.html) |
106 | 60 |
|
107 |
| -[Spring编程式和声明式事务实例讲解](https://juejin.im/post/5b010f27518825426539ba38) |
| 61 | +- [Spring IOC核心源码学习](https://yikun.github.io/2015/05/29/Spring-IOC核心源码学习/) :比较简短,推荐阅读。 |
| 62 | +- [Spring IOC 容器源码分析](https://javadoop.com/post/spring-ioc) :强烈推荐,内容详尽,而且便于阅读。 |
108 | 63 |
|
109 |
| -> ## 其他 |
| 64 | +## Spring事务管理 |
110 | 65 |
|
111 |
| -**Spring单例与线程安全:** |
| 66 | +- [可能是最漂亮的Spring事务管理详解](https://juejin.im/post/5b00c52ef265da0b95276091) |
| 67 | +- [Spring编程式和声明式事务实例讲解](https://juejin.im/post/5b010f27518825426539ba38) |
112 | 68 |
|
113 |
| -[Spring框架中的单例模式(源码解读)](http://www.cnblogs.com/chengxuyuanzhilu/p/6404991.html) |
| 69 | +### Spring单例与线程安全 |
114 | 70 |
|
115 |
| -单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例。spring依赖注入时,使用了 多重判断加锁 的单例模式。 |
| 71 | +- [Spring框架中的单例模式(源码解读)](http://www.cnblogs.com/chengxuyuanzhilu/p/6404991.html):单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例。spring依赖注入时,使用了 多重判断加锁 的单例模式。 |
116 | 72 |
|
117 |
| -> ## Spring源码阅读 |
| 73 | +### Spring源码阅读 |
118 | 74 |
|
119 | 75 | 阅读源码不仅可以加深我们对Spring设计思想的理解,提高自己的编码水品,还可以让自己在面试中如鱼得水。下面的是Github上的一个开源的Spring源码阅读,大家有时间可以看一下,当然你如果有时间也可以自己慢慢研究源码。
|
120 | 76 |
|
121 |
| -### [Spring源码阅读](https://github.com/seaswalker/Spring) |
122 | 77 | - [spring-core](https://github.com/seaswalker/Spring/blob/master/note/Spring.md)
|
123 | 78 | - [spring-aop](https://github.com/seaswalker/Spring/blob/master/note/spring-aop.md)
|
124 | 79 | - [spring-context](https://github.com/seaswalker/Spring/blob/master/note/spring-context.md)
|
|
0 commit comments