Spring Boot面试题总结

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 https://blog.csdn.net/weixin_43863007/article/details/89046303
1. 什么是 SpringBoot?
  • Springboot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了Spring的难度,简化了繁重的配置,提供了各种启动器,开发者能快速上手
2. 为什么要用Springboot?
  • Springboot的优点包括:
  1. 创建独立的Spring引用程序main方法运行
  2. 嵌入的Tomcat无需部署war文件
  3. 简化maven配置
  4. 自动配置Spring添加对应功能starter自动化配置
  5. 无代码生成和xml配置
  6. 应用监控
  7. 容易上手等
3. SpringBoot的核心配置文件有哪几个?他们的区别是什么?
  • Springboot的核心配置文件是application和bootstrap配置文件
  • application配置文件主要用于项目的自动化配置
  • bootstrap配置文件有以下几个应用场景
  1. 使用Spring cloud Config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息
  2. 一些固定的不能被覆盖的属性
  3. 一些加密/解密的场景
4. Springboot的配置文件有哪几种格式有什么区别?

properties和yml,区别是书写格式不同
properties:

app.user.name = javastack

yml:

app:
  user:
    name: javastack
5. Springboot的核心注解是那个?主要有哪几个注解组成?
  • 启动类上面的注解是@SpringBootApplication,它也是Springboot的核心注解,主要组合包含了一下三个注解:
  1. @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能
  2. @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项
  3. @ComponentScan:Spring组件扫描
6. 开启Springboot特性有哪几种方式?
  1. 继承Spring-boot-starter-parent项目
  2. 导入Spring-boot-dependencies
7. Springboot需要独立的容器运行吗?
  • 可以不需要,内置了Tomcat等容器
8. 运行Springboot有哪几种方式?
  1. 打包用命令或者放到容器中运行
  2. 用Maven/Gradle插件运行
  3. 直接执行main方法运行
9. SpringBoot自动配置原理是什么?
  • 注解@EnableAutoConfiguration,@Configuration,@ConditionalOnClass就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类自动去配置
  • 在Spring程序main方法中添加@SpringBootApplication或者@EnableAutoConfiguration,会自动去maven中读取每个starter中的Spring。factories文件,该文件里配置了所有需要被创建Spring容器中的Bean
10.如何理解springboot中的starters?
  • starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式继承Spring以及其他技术,而不需要到处找示例代码和依赖包,如你想使用SpringJPA访问数据库,只要加入Spring-boot-starter-data-jpa启动器依赖就能使用了
  • starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖
  • 常用的starter有哪些?
  1. spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
  2. spring-boot-starter-data-jpa 数据库支持
  3. spring-boot-starter-data-redis redis数据库支持
  4. spring-boot-starter-data-solr solr支持
  5. mybatis-spring-boot-starter 第三方的mybatis集成starter
11. 如何在Springboot启动时候运行一些特定的代码?
  • 可以实现接口ApplicationRunner或者CommandLineRunner,这两个接口实现方式一样,他们都只提供了一个run方法
12. Springboot有哪几种读取配置的方式?

SpringBoot可以通过@PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量

13. Springboot支持哪些日志框架?推荐和默认的是那个?

Springboot支持Java Util Logging, Log4j2, Lockback作为日志框架,如果你使用starters启动器,Springboot将使用logback作为默认日志框架

14.Springboot集成Mybatis的过程:

添加Mybatis的startermaven依赖

			 <dependency>
                        <groupId>org.mybatis.spring.boot</groupId>
                        <artifactId>mybatis-spring-boot-starter</artifactId>
                        <version>1.2.0</version>
                </dependency>

在Mybatis的接口中添加@Mapper注解,在application.yml配置数据源信息

15. Springboot如何添加实现修改代码,自动重启功能:

添加开发者工具集—Spring-boot-devtools

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<optional>true</optional>
	</dependency>
</dependencies>

猜你喜欢

转载自blog.csdn.net/weixin_43863007/article/details/89046303