什么是 spring boot?
- Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
为什么要用 spring boot?
- 独立运行:Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
- 简化配置:spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
- 自动配置:Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
- 无代码生成和XML配置:Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
- 应用监控:Spring Boot提供一系列端点可以监控服务及应用,做健康检测。
spring boot 核心配置文件是什么?
- Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
1、application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。
2、bootstrap 配置文件有以下几个应用场景。
1)使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
2)一些固定的不能被覆盖的属性;
3)一些加密/解密的场景
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
- 启动类上面的注解是SpringBootApplication,它也是SpringBoot的核心注解,主要组成包含了以下注解:
(1)、@SpringBootConfiguration:组合了@Configuration注解,实现了配置文件功能。
(2)、@EnableAutoConfiguration:打开自动配置功能,也可以关闭某个自动配置选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = DateSourceAutoConfiguration.class)。
(3)、@ComponentScan :Spring组件扫描。
开启SpringBoot 特性有几种方式?
- 继承spring-boot-starter-parent项目。
- 导入spring-boot-dependencies项目依赖。
SpringBoot 需要独立的容器运行吗?
- 可以不需要。因为内置了Tomcat/Jetty等容器。
SpringBoot 自动配置的实现原理是什么?
- 注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。
spring boot 配置文件有哪几种类型?它们有什么区别?
- .properties 和 .yml,它们的区别主要是书写格式不同。
spring boot 有哪些方式可以实现热部署?
- 第一种:在maven项目下,在pox.xml文件中的build中添加spring-loaded依赖。
- 第二种:在maven项目下,依赖spring-boot-devtools实现。
说一下你如何理解SpringBoot 中的Starters?
- Starters可以理解为启动器,它包含可一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要导出找实例代码和依赖包,比如你想使用Spring JPA访问数据库,只需要加入spring-boot-starter-data-jpa 启动以来就能使用了。
- Starters包含了许多项目需要用到的依赖,它们能快速持续运行,都是一系列得到支持管理的传递性依赖。
如何在 Spring Boot 启动的时候运行一些特定的代码?
- 可以实现接口 ApplicationRunner 或者 CommandLineRunner
SpringBoot 有几种读取配置的方式?
- Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量。
Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
- Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。