SpringBoot面试总结

本文详细介绍了SpringBoot的优点,包括版本锁定、起步依赖、自动配置、内置Tomcat以及核心注解如@SpringBootApplication的工作原理。还涵盖了启动方式、配置文件、事务管理和常见注解的使用等内容。
摘要由CSDN通过智能技术生成
1.SpringBoot的优点

1.版本锁定:解决了Maven依赖版本容易产生冲突的问题,集合了常用并测试过的版本,使用starter管理依赖对版本进行控制

2.起步依赖:解决了完成某一个功能要整合jar包过多的问题,集合了常用的jar包

3.自动配置:解决了整个框架或技术配置文件过多的问题,集合了所有特定的默认配置

4.内置Tomcat:直接运行JavaEE程序

2.什么是starter

starter即启动器,可以通过启动器集成其他技术,eg:Web,MyBatis,Redis等等,可以提供对应的技术的开发和运行环境

3.SpringBoot核心注解是哪个,它主要是有哪几个注解组成?

启动类上的注解是@SpringBootApplication,它也是SpringBoot的核心注解,主要包含以下三个部分

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

@EnableAutoConfiguration:打开自动配置功能,也可以关闭自动配置的某个选项

@ComponentScan:Spring组件扫描

4.SpringBoot Stater工作原理

当SpringBoot启动时,@SpringApplication注解会自动去maven读取每个starter中的spring.factories文件,该文件记载了spring容器中所有需要被创建的Bean,并且自动配置把Bean注入Spring配置文件SpringContext中

5.运行SpringBoot有哪几种方式

1.打包用命令/放到容器中运行

2.使用maven/Gradle插件运行

3.直接在main方法中运行

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

可以不需要,内置Tomcat/Jetty等容器

7.开启SpringBoot特性有哪几种方式

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

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

8.SpringBoot事务的使用

首先使用@EnableTransactionManagement开启事务,在Service方法中添加@Transcation即可

9.SpringBoot有哪几种读取配置的方式

@PropetySource @Value @Enviroment @ConfigurationPropetie注解来绑定变量

10.SpringBoot启动流程

SpringBoot启动其本质就是加载各种配置信息,然后初始化IOC容器并返回

首先,当我们启动类执行SpringApplication.run这行代码

1.创建SpringApplication对象

2.执行run方法

其次在创建SpringApplication对象的时候,在它的构造方法内部主要是做以下3件事:

1)确认Web应用类型,一般情况下是Servlet类型,这种类型的应用,将会自动启动一个Tomcat

2)从spring.factories配置文件中,加载默认的ApplicationContextInitializer和ApplicationListener

3)记录当前应用的启动类,将来当作包扫描

最后在创建完对象之后,在run方法主要是做以下四件事:

1)准备Enviroment对象,它里面会封装一些当前应用运行环境的参数,比如环境变量等

2)实例化容器,仅仅是创建ApplicationContext对象

3)容器创建好之后,会为容器做一些准备操作,比如为容器设置Environment、BeanFactroryPostProcessor后置处理器,并且加载主类对应的Defination

4)刷新容器,就是我们常说的refresh,这里会真正创建Bean实例

核心就两步:创建SpringApplication对象及run方法调用,在run方法会真正实例化容器,并创建容器所需的Bean实例

11.SpringBoot有哪些配置文件

applciation.yml或application.propties

bootstrap.yml或bootstrap.propties

12.上述两种配置文件的区别

1.bootstrap由父ApplicationContext加载,比application配置文件优先加载

2.bootstrap里的属性不能被覆盖

3.application:SpringBoot项目中的自动化配置

4.bootstrap:使用Spring Cloud Config配置中心时,需要加载连接配置中心的配置属性的,就可以使用bootstrap来完成,加载不能被覆盖的属性,加载一些加密/解密的数据

13.SpringBoot支持哪些日志框架

Java.Util.Logging、Log4j、Log4j2、Logback(如果使用了启动器,那么SpringBoot默认将Logback作为日志框架)

14.SpringBoot常用注解

1.@SpringBootApplication: 它 封 装 了 核 心 的 @SpringBootConfiguration +@EnableAutoConfiguration +@ComponentScan 这三个类,大大节省了程序员配 置时间,这就是 SpringBoot 的核心设计思想.

2.@EnableScheduling 是通过@Import 将 Spring 调度框架相关的 bean 定义都加载到 IoC 容器

3.@MapperScan:spring-boot支持mybatis组件的一个注解,通过此注解指定mybatis 接口类的路径,即可完成对 mybatis 接口的扫描

4.@RestController 是 @Controller 和 @ResponseBody 的 结 合 , 一 个 类 被 加 上 @RestController 注解,数据接口中就不再需要添加@ResponseBody,更加简洁。

5.@RequestMapping,我们都需要明确请求的路径. 6.@GetMappping,@PostMapping, @PutMapping, @DeleteMapping 结 合 @RequestMapping 使用, 是 Rest 风格的, 指定更明确的子路径.

7.@PathVariable:路径变量注解,用{}来定义 url 部分的变量名.

8.@Service 这个注解用来标记业务层的组件,我们会将业务逻辑处理的类都会加上这个 注解交给 spring 容器。事务的切面也会配置在这一层。当让 这个注解不是一定要用。 有个泛指组件的注解,当我们不能确定具体作用的时候 可以用泛指组件的注解托付给 spring 容器 9.@Component 和 spring 的注解功能一样, 注入到 IOC 容器中.

10.@ControllerAdvice 和 @ExceptionHandler 配合完成统一异常拦截处理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值