1、谈谈你对SpringBoot的理解?
是一站式解决方案,简化了Spring繁琐的配置,提供了各种启动器,让开发者更好上手。
2、为什么使用SpringBoot,它有什么优点?
-
版本锁定: 解决maven依赖版本冲突问题
-
起步依赖: 解决jar过多问题
-
自动配置: 解决配置文件过多问题
-
内置tomcat: 通过内置tomcat,不需要其他外置tomcat,也能运行javaEE。
3、SpringBoot和SpringCloud的区别?
SpringBoot是快速开发的Spring框架,SpringCloud是完整的微服务框架,SpringCloud依赖于SpringBoot。
4、SpringBoot核心配置文件有哪些?作用是什么?
application 和 bootstrap 配置文件。 application: 用于项目的自动化配置。 bootstrap: 一些不能被覆盖的属性和加密或解密的场景。比application要先加载。
5、SpringBoot自动装配原理?
SpringBoot的自动配置原理基于@SpringBootApplication
注解,它封装了@SpringBootConfiguration
、@EnableAutoConfiguration
和@ComponentScan
。@EnableAutoConfiguration
是核心,它通过@Import
导入配置选择器,读取META-INF/spring.factories
文件中的类名,根据条件注解(@Conditional)决定是否将配置类中的Bean导入到Spring容器中。
6、SpringBoot常见的注解有哪些?
Spring Boot的常见注解包括:
-
@SpringBootApplication
:由@SpringBootConfiguration
、@EnableAutoConfiguration
和@ComponentScan
组成。 -
其他注解如
@RestController
、@GetMapping
、@PostMapping
等,用于简化Spring MVC的配置。
7、什么是热部署?SpringBoot怎么实现热部署?
热部署: 修改代码不需要重启,就可以实现编译并部署到服务器上。(1)在开发时修改代码不需要重启服务,节省了时间。(2)部署在服务器上的程序,可以在不停止的情况下进行升级。 ①使用devtools。在配置文件中把devtools.restart.enabled 设置为 true。每次都需要build一下才行。 ②idea设置实现热部署。
8、SpringBoot全局异常处理?
@ControllerAdvice:开启了全局异常的捕获。然后自定义一个方法使用@ExceptionHandler注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。
@ControllerAdvice public class ExceptionUtil{ @ExceptionHandler(value =Exception.class) @ResponseBody public String exceptionHandler(Exception e){ System.out.println("全局异常捕获:"+e); return "全局异常捕获,错误原因:"+e.getMessage(); } }