当前位置: 首页 > 编程笔记 >

Spring Boot面试题总结

宦博雅
2023-03-14
本文向大家介绍Spring Boot面试题总结,包括了Spring Boot面试题总结的使用技巧和注意事项,需要的朋友参考一下

1 Spring Boot的配置文件格式

application.properties或者是application.yml,它们的区别主要是书写格式不同。

1).properties:

springboot.user.name = testname

2).yml:

springboot:
  user:
    name: testname

另外,.properties格式文件的属性是无序的,.yml 格式文件的属性是有序的,但它不支持@PropertySource注解导入配置。

2 Spring Boot的核心注解

启动类上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要组合包含了以下3个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

3 开启Spring Boot特性的方式

1)继承spring-boot-starter-parent项目

2)导入spring-boot-dependencies项目依赖

4 运行Spring Boot的方式

1)直接执行main方法运行

2)用Maven / Gradle插件运行

3)打成jar包,通过java -jar命令直接运行

5 Spring Boot读取配置的方式

Spring Boot可以通过@PropertySource,@Value,@Environment,@ConfigurationProperties来绑定变量。

6 Spring Boot中的监视器

Spring Boot actuator是Spring启动框架中的重要功能之一。Spring Boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。例如创建了什么bean、控制器中的映射、CPU 使用情况等等。然后可以将自动收集和审计健康状况(health)以及指标(metric)到您的应用程序中。

7 Spring Boot自动配置的原理 

在Spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration。会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中的bean。

Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR

根据spring.factories配置加载AutoConfigure类

根据@Conditional注解的条件,进行自动配置并将Bean注入Spring Context

8 spring-boot-maven-plugin

spring-boot-maven-plugin提供了一些像jar一样打包或者运行应用程序的命令。

run:运行你的Spring Boot应用程序。

repackage:重新打包你的jar包或者是war包使其可执行

start和stop:管理Spring Boot应用程序的生命周期,也可以说是为了集成测试。

build-info:生成执行器可以使用的构造信息。

9 使用配置文件通过Spring Boot配置特定环境的配置

比方说现在有两个配置文件application-dev.properties和application-prod.properties。在application.properties中使用 spring.profiles.active=prod即可加载application-prod.properties配置文件的配置。

10 如何禁用一个特定自动配置类

@SpringBootApplication(exclude= {Order.class})
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@EnableAutoConfiguration(excludeName={Foo.class})

11 Spring Boot工厂模式的加载

Spring Framework内部使用一种工厂加载机制(Factory Loading Mechanism)。这种机制使用SpringFactoriesLoader完成,SpringFactoriesLoader使用loadFactories方法加载并实例化从META-INF目录里的spring.factories文件出来的工厂,这些spring.factories文件都是从classpath里的jar包里找出来的。

总结

以上所述是小编给大家介绍的Spring Boot面试题总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 类似资料:
  • 前言 这是我用来准备后端开发校招面试的笔记汇总。这些题目或多或少都在不同公司的面试过程中出现过,因此将其总结起来,可以用作复习阶段的知识点梳理,也可以用作面试前的快速回顾。如何复习?推荐阅读校招复习 / 面试方法论。 本文采用「题目 - 子问题 - 答案」的形式,答案默认折叠 [?]。大部分问题都是简答,可以直接采用。但是深入了解细节,才能应对面试官进一步的问题,因此我也将部分问题整理为单独的文章

  • Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 4:简述解释型和编译型编程语言 5:Python的解释器种类以及相关特点? 6:位和字节的关系 7:b、B、KB、MB、GB的关系 8:PE8规范 9:通过代码实现如下转换(进制之间转换) 10:请编写一个函数实现将IP地址转换成一个整数 11、python递归的最大层数?99

  • #Java##面试题##我的求职思考# 🤣Java基础: 1.面向对象思想说一说? 2. 😀集合相关: 1.说说List,Set,Queue,Map四种集合的特点和区别? 2.ArrayList和Vector的区别是什么? 3.ArrayList和LinkedList的区别是什么? 4.ArrayList的扩容机制了解吗? 😁多线程、JUC: 1.请你说说多线程? 2.说说怎么保证线程安全?

  • 文末附有内推链接!!! HTML + CSS 讲一下盒模型,普通盒模型和怪异盒模型有什么区别? 块元素和行内元素区别是什么?常见块元素和行内元素有哪些? HTML语义化标签 有哪些? 伪类和伪元素的区别是什么? CSS如何实现垂直居中? CSS常见的选择器有哪些? CSS的优先级如何计算? 长度单位px、em和rem的区别是什么? 讲一下flex弹性盒布局? 浮动塌陷问题解决方法是什么? posi

  • 前言 你盼世界,我盼望你无bug。Hello 大家好! 哈哈😄,这是一篇面试总结文章,抱歉,webpack和HTTP系列的先暂缓一下更新哈,Sorry~ 这篇文章是自己近期的一些面试汇总,经验是2年,算了一下有128道,基本都写了比较完善的答案,就算没有写也有推荐一些好的文章链接,文章篇幅较大,整理总结也花费了很多的时间和心血,题目也是根据公司规模的大小从易到难,算是见证了面试过程中的不足与成长

  • 多线程 线程池: 为什么使用线程池? 说一下创建线程池时的核心参数和线程池执行原理? 线程池的拒绝策略有哪些? 常用的阻塞队列有哪些? ArrayBlockingQueue和LinkedBlockingQueue的区别? 阻塞队列的作用? 为什么不先创建救急线程而是先把任务添加到阻塞队列中? 具体说说常见的线程池种类? 如何确定核心线程数和最大线程数? -----------------持续更新-