|
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