1. SpringBoot跟Spring的关系
来自更多详细信息https://www.jianshu.com/p/ffe5ebe17c3a
Spring框架为开发Java应用程序提供了全面的基础架构支持。Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。
主要区别:
Spring
它包含一些很好的功能,如依赖注入和开箱即用的模块,如:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test,这些模块缩短应用程序的开发时间,提高了应用开发的效率
Spring Boot:
- 创建独立的Spring应用
- 嵌入式Tomcat、Jetty、 Undertow容器(无需部署war文件)。
- 提供的starters 简化构建配置
- 尽可能自动配置spring应用
- 提供生产指标,例如指标、健壮检查和外部化配置
- 完全没有代码生成和XML配置要求
2. SpringBoot的自动装配原理
更多详细信息,查看https://www.jianshu.com/p/88eafeb3f351
初看@SpringBootApplication有很多的注解组成,其实归纳就是一个"三体"结构,重要的只有三个Annotation:
1. @Configuration(@SpringBootConfiguration实质就是一个@Configuration)
2. @EnableAutoConfiguration
3. @ComponentScan
3. springboot 3级缓存 、springboot为什么需要3级缓存
https://blog.youkuaiyun.com/weixin_42440637/article/details/112264648
4. SpringBoot 的主要优点
Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持。
- 更快速的构建能力
- 起步依赖
- 内嵌容器支持
- Actuator 监控
- 启动源码分析
引用详情: https://blog.youkuaiyun.com/qq_41022073/article/details/106039536
5. SpringBoot 支持哪些内嵌的Servlet 容器
6. 如何在Spring boot 应用程序中使用Jetty 而不是Tomcat
7. 开发RESTful Web 服务常用的注解有哪些
JAX-RS(Java API for RESTful Web Services)是Java 提供用于开发RESTful Web 服务基于注解的 API,旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期,Jersey,RESTEasy都是JAX-RS标准的具体实现框架。
- 请求路径
@Path - Http 请求类型
@GET, @PUT, @POST, @DELETE - 返回和接收的MIME媒体类型
@Produces,@Consumes - Http 请求参数处理相关注解
@PathParam,@QueryParam,@DefaultValue,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,@Context
8. Spring Boot 常用的两种配置文件
9. 什么是YAML ? YAML 配置的优势在哪里
YAML是“YAML不是一种标记语言”的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。yaml还有另外一个特点,就是yaml中的数据是有序的,properties中的数据是无序的。在一些需要路径匹配的的配置中,顺序就显得尤为重要
10. Spring Boot 常用的读取配置文件的方法有哪些
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口。这三种注解可以配合着@PropertySource来使用,@PropertySource主要是用来指定具体的配置文件。
引用详情:https://blog.youkuaiyun.com/chen801090/article/details/107210913
11. Spring Boot 加载配置文件的优先级了解吗
- SpringBoot配置文件
SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。两者同时存在情况,可见在同一目录下,properties配置优先级 > YAML配置优先级。所以我们在jar包启动时带上properties写法的配置可以覆盖配置. - 配置文件目录
SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。
可放置目录(优先级从高到低):
> file:./config/ (当前项目路径config目录下);
> file:./ (当前项目路径下);
> classpath:/config/ (类路径config目录下);
> classpath:/ (类路径config下).
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载配置文件并互补配置;
- 自定义配置属性
- 指定配置文件
文章详情: https://blog.youkuaiyun.com/IT_faquir/article/details/80869578
12. 常用的 Bean 映射工具有哪些?
13. Spring Boot 如何监控系统实际运行状况
Spring Boot的Actuator提供了运行状态的监控的功能,Actuator的监控数据可以通过REST、远程shell(1.5之后的版本弃用)和JMX方式获得。我们首先介绍通过REST方式查看Actuator的节点的方法,这是最常见且简单的方法。
在配置文件application.yml中配置management.port和management.security.enabled,这两个配置分别配置了Actuator对外暴露REST API接口的端口号和Actuator采取的非安全验证方式.
在上述的配置代码中指定了Actuator对外暴露的REST API接口的端口号 为 9001,如果不指定,端口为应用程序的启动端口,这样做的目的是将程序端口和程序的监控端口分开。将配置management.endpoints.web.exposure.include设置为“*”,暴露Actuator组件的所有节点;将配置management.endpoint.shutdown设置为“true”,开启可以通过请求来关闭程序的功能。
详细信息: https://blog.youkuaiyun.com/weixin_42466157/article/details/104414930
14. Spring Boot 如何做请求参数校验
springboot本身提供了一个验证框架validation
,在springboot2.3.x版本以后将这个依赖移除了,所以2.3以后的版本请手动添加,2.3以下的版本则不需要自己添加。
在需要验证的接受参数前添加@Validated注解,定义的规则生效。
15. 如何使用 Spring Boot 实现全局异常处理
- Spring 的AOP (较复杂)
@ControllerAdvice
结合@ExceptionHandler
引用: https://blog.youkuaiyun.com/songguopeng/article/details/98961787
16. Spring Boot 中如何实现定时任务
在启动类中加入@EnableScheduling来开启定时任务, 然后再需要定时任务的方法上加入@Scheduled 注解 , 配置cron 表达式。除了该表达式外,还可以使用fixedRate,fixedDelay等来作为时间配置。