概述
毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。
实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。
第一个暴击:Spring
上一份Spring的手绘思维脑图(就像是个知识大纲总结),预览一下Spring的知识点,心里有个谱。不过这边我是采用的截图方式,为了把全部的内容都截取出来,所以整个就比较小,可能不是很清晰。
Spring面试真题(七大模块:一般问题+IOC+Beans+注解+数据访问+AOP+MVC)
- 一般问题
1. 不同版本的 Spring Framework 有哪些主要功能?
2. 什么是 Spring Framework?
3. 列举 Spring Framework 的优点
4. Spring Framework 有哪些不同的功能?
5. Spring Framework 中有多少个模块,它们分别是什么?
6. 什么是 Spring 配置文件?
7. Spring 应用程序有哪些不同组件?
8. 使用 Spring 有哪些方式?
- IOC
9. 什么是 Spring IOC 容器?
10. 什么是依赖注入?
11. 可以通过多少种方式完成依赖注入?
12. 区分构造函数注入和 setter 注入。
13. spring 中有多少种 IOC 容器?
14. 区分 BeanFactory 和 ApplicationContext。
15. 列举 IoC 的一些好处。
16. Spring IoC 的实现机制。
- Beans
17. 什么是 spring bean?
18. spring 提供了哪些配置方式?
19. spring 支持集中 bean scope?
20. spring bean 容器的生命周期是什么样的?
21. 什么是 spring 的内部 bean?
22. 什么是 spring 装配?
23. 自动装配有哪些方式?
24. 自动装配有什么局限?
- 注解
25. 什么是基于注解的容器配置?
26. 如何在 spring 中启动注解装配?
27. @Component, @Controller, @Repository, @Service 有何区别?
28. @Required 注解有什么用?
29. @Autowired 注解有什么用?
30. @Qualifier 注解有什么用?
31. @RequestMapping 注解有什么用?
- 数据访问
32. spring DAO 有什么用?
33. 列举 Spring DAO 抛出的异常。
34. spring JDBC API 中存在哪些类?
35. 使用 Spring 访问 Hibernate 的方法有哪些?
36. 列举 spring 支持的事务管理类型
37. spring 支持哪些 ORM 框架?
- AOP
38. 什么是 AOP?
39. 什么是 Aspect?
40. 什么是切点(JoinPoint)
41. 什么是通知(Advice)?
42. 有哪些类型的通知(Advice)?
43. 指出在 spring aop 中 concern 和 cross-cutting concern 的不同之处
44. AOP 有哪些实现方式
45. Spring AOP and AspectJ AOP 有什么区别?
46. 如何理解 Spring 中的代理?
47. 什么是编织(Weaving)?
- MVC
48. Spring MVC 框架有什么用?
49. 描述一下 DispatcherServlet 的工作流程
50. 介绍一下 WebApplicationContext
完整的答案解析如下(总共有18页)
Spring进阶学习笔记
- Spring高级源码笔记
- Spring实战(第3版)
第二个暴击:SpringCloud
思维脑图–SpringCloud微服务实战思维脑图(xmind)
SpringCloud面试真题
问题一:什么是 Spring Cloud?
问题二:使用 Spring Cloud 有什么优势?
问题三:服务注册和发现是什么意思?Spring Cloud 如何实现?
问题四:负载平衡的意义什么?
问题五:什么是 Hystrix?它如何实现容错?
问题六:什么是 Hystrix 断路器?我们需要它吗?
问题七:什么是 Spring Cloud Bus?我们需要它吗?
问题八:什么是 Netflix Feign?它的优点是什么?
完整的答案解析如下(总共6页)
SpringCloud进阶学习
- SpringCloud Alibaba微服务笔记
- SpringCloud参考指南
第三个暴击:SpringBoot
思维脑图–SpringBoot思维脑图(xmind)
SpringBoot面试真题
问题一:Spring Boot、Spring MVC 和 Spring 有什么区别?
问题二:什么是自动配置?
问题三:什么是 Spring Boot Stater ?
问题四:你能否举一个例子来解释更多 Staters 的内容?
问题五:Spring Boot 还提供了其它的哪些 Starter Project Options?
问题六:Spring 是如何快速创建产品就绪应用程序的?
问题七:创建一个 Spring Boot Project 的最简单的方法是什么?
问题八:Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
问题九:为什么我们需要 spring-boot-maven-plugin? 问题十:如何使用 SpringBoot 自动重装我的应用程序?
问题十一 :什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
问题十二:如何在 Spring Boot 中添加通用的 JS 代码?
问题十三:什么是 Spring Data?
问题十四:什么是 Spring Data REST?
问题十五:path=”users”, collectionResourceRel=”users” 如何与 Spring Data Rest 一起使用?
问题十六:当 Spring Boot 应用程序作为 Java 应用程序运行时,后台会发生什么?
问题十七:我们能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?
问题十八:如何使用 Spring Boot 生成一个 WAR 文件?
问题十九:如何使用 Spring Boot 部署到不同的服务器?
问题二十:RequestMapping 和 GetMapping 的不同之处在哪里?
问题二十一:为什么我们不建议在实际的应用程序中使用 Spring Data Rest?
问题二十二:在 Spring Initializer 中,如何改变一个项目的包名字?
问题二十三:可以配置 application.propertierde 的完整的属性列表在哪里可以找到?
问题二十四:JPA 和 Hibernate 有哪些区别?
问题二十五:业务边界应该从哪一层开始?
问题二十六:使用 Spring Boot 启动连接到内存数据库 H2 的 JPA 应用程序需要哪些依赖项?
问题二十七:如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?
问题二十八:指定的数据库连接信息在哪里?它是如何知道自动连接至 H2 的?
问题二十九:我们如何连接一个像 MySQL 或者Orcale 一样的外部数据库?
问题三十:Spring Boot 配置的默认 H2 数据库的名字是上面?为什么默认的数据库名字是 testdb?
问题三十一:如果 H2 不在类路径里面,会出现上面情况?
问题三十二:你能否举一个以 ReadOnly 为事务管理的例子?
问题三十三:发布 Spring Boot 用户应用程序自定义配置的最好方法是什么?
问题三十四:配置文件的需求是什么?
问题三十五:如何使用配置文件通过 Spring Boot 配置特定环境的配置?
答案解析如下(21页)
SpringBoot进阶学习
- 深入浅出SpringBoot
- Spring Boot教程
最后一个:SpringMVC
思维脑图–SpringMVC思维脑图
SpringMVC面试真题
1. 什么是 SpringMvc?
2. Spring MVC 的优点:
3. SpringMVC 工作原理?
4. SpringMVC 流程?
5. SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
6. 如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
7. SpingMvc 中的控制器的注解一般用哪个,有没有别的注解可以替代?
8. @RequestMapping 注解用在类上面有什么作用?
9. 怎么样把某个请求映射到特定的方法上面?
10. 如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
11. 怎么样在方法里面得到 Request,或者 Session?
12. 我想在拦截的方法里面得到从前台传入的参数,怎么得到?
13. 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
14. SpringMvc 中函数的返回值是什么?
15. SpringMVC 怎么样设定重定向和转发的?
16. SpringMvc 用什么对象从后台向前台传递数据的?
17. SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
18. 怎么样把 ModelMap 里面的数据放入 Session 里面?
19. SpringMvc 怎么和 AJAX 相互调用的?
20. 讲下 SpringMvc 的执行流
答案解析如下(4页)
独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
1618390704115)]
[外链图片转存中…(img-3xRbYdqf-1618390704116)]
[外链图片转存中…(img-WKu7G5V9-1618390704117)]
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
[外链图片转存中…(img-ymU5RM4L-1618390704118)]
[外链图片转存中…(img-JQ1S7gpk-1618390704118)]
以上所有文档已经打包好,只需要动动手指点击【转发+关注】,然后点击即可免费获取!