附答案!超全SpringBoot面试题总结

胖胖胖胖虎阿
English

我把所有Java相关的面试题和答案都整理成了PDF,并且带书签目录,阅读起来非常方便

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

1. Spring Boot 有哪几种读取配置的方式?

Spring Boot 可以通过

  • @PropertySource
  • @Value
  • @Environment,
  • @ConfigurationProperties

来绑定变量

2. spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 ?

单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合 Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。

spring boot 核心的两个配置文件:

  • bootstrap (. yml 或者 . properties): boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;
  • application (. yml 或者 . properties): 由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。

3. Spring Boot 打成的 jar 和普通的 jar 有什么区别

1、 Spring Boot 项目最终打包成的 jar 是可执行 jar ,这种 jar 可以直接通过 java -jar xxx.jar 命令来运行,这种 jar 不可以作为普通的 jar 被其他项目依赖,即使依赖了也无法使用其中的类。
2、 Spring Boot 的 jar 无法被其他项目依赖,主要还是他和普通 jar 的结构不同。普通的 jar 包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,因此无法被直接引用。如果非要引用,可以在 pom.xml 文件中增加配置,将 Spring Boot 项目打包成两个 jar ,一个可执行,一个可引用。

4. 我们如何监视所有 Spring Boot 微服务?

Spring Boot 提供监视器端点以监控各个微服务的度量。这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但是,使用监视器的一个主要缺点或困难是,我们必须单独打开应用程序的知识点以了解其状态或健康状况。想象一下涉及 50 个应用程序的微服务,管理员将不得不击中所有 50 个应用程序的执行终端。为了帮助我们处理这种情况,我们将使用位于的开源项目。 它建立在 Spring Boot Actuator 之上,它提供了一个 Web UI,使我们能够可视化多个应用程序的度量。

5. Spring Boot 中的 starter 到底是什么

首先,这个 Starter 并非什么新的技术点,基本上还是基于 Spring 已有功能来实现的。

首先它提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。当然,开发者也可以自定义 Starter

后面的问题,大家可以先自己独立思考一下。

另外我把所有Java相关的面试题和答案都整理出来了,给大家参考一下

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

6. 如何在自定义端口上运行 Spring Boot应用程序?

7. Spring Boot 自动配置原理是什么?

8. spring-boot-starter-parent 有什么用 ?

9. 什么是 CSRF 攻击?

10. 创建一个 Spring Boot Project 的最简单的方法是什么?

11. 什么是YAML?

12. 什么是JavaConfig?

13. Spring Boot、Spring MVC 和 Spring 有什么区别?

14. 你如何理解 Spring Boot 中的 Starters?

15. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

16. Spring Boot 配置加载顺序详解

17. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

18. 什么是 Swagger?你用 Spring Boot 实现了它吗?

19. 如何集成 Spring Boot 和 ActiveMQ?

20. 当 Spring Boot 应用程序作为 Java 应用程序运行时,后台会发生什么?

21. SpringBoot启动时都做了什么?

22. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个

23. Spring Boot 中如何解决跨域问题 ?

24. 什么是 JavaConfig?

25. 什么是 Spring Data?

26. Spring Boot初始化环境变量流程?

27. YAML 配置的优势在哪里 ?

28. Spring Boot 的目录结构是怎样的?

29. Spring Boot 还提供了其它的哪些 Starter Project Options?

30. Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?

31. SpringBoot自动配置原理是什么?

32. Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

33. RequestMapping 和 GetMapping 的不同之处在哪里?

34. 为什么我们不建议在实际的应用程序中使用 Spring Data Rest?

35. Spring Boot、Spring MVC 和 Spring 有什么区别?

36. 什么是springboot ?

37. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?

38. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

39. spring boot的starter的执行原理

40. 怎么理解 Spring Boot 中 “约定优于配置“

41. 比较一下 Spring Security 和 Shiro 各自的优缺点 ?

42. SpringBoot 需要独立的容器运行吗?

43. 运行 Spring Boot 有哪几种方式?

44. springboot自动配置的原理

45. 如何禁用一个特定自动配置类?

46. 微服务中如何实现 session 共享

47. 如何重新加载Spring Boot上的更改,而无需重新启动服务器?

48. 为什么我们需要 spring-boot-maven-plugin?

49. Springboot 有哪些优点?

50. 什么是 Spring Batch?

51. 什么是 Spring Boot Stater ?

52. SpringBoot常用的starter有哪些?

53. 什么是 Spring Profiles?

54. Spring Boot中的监视器是什么?

55. SpringBoot 实现热部署有哪几种方式?

56. SpringBoot的原理

57. Spring Boot 是否可以使用 XML 配置 ?

58. Springboot集成mybatis的过程

59. spring-boot-starter-parent 有什么用

60. Spring Boot 中如何实现定时任务 ?

61. Spring Boot扫描流程?

62. Spring Boot 如何定义多套不同环境配置?

63. 如何使用 Spring Boot 实现分页和排序?

64. 什么是 Spring Data REST?

阅读 358

No BB,Show code。

182 声望
162 粉丝
0 条评论
你知道吗?

No BB,Show code。

182 声望
162 粉丝
文章目录
宣传栏