SpringBoot面试题

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:

  1. 创建独立的Spring应用
  2. 嵌入式Tomcat、Jetty、 Undertow容器(无需部署war文件)。
  3. 提供的starters 简化构建配置
  4. 尽可能自动配置spring应用
  5. 提供生产指标,例如指标、健壮检查和外部化配置
  6. 完全没有代码生成和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.csdn.net/weixin_42440637/article/details/112264648

4. SpringBoot 的主要优点

Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持。

  • 更快速的构建能力
  • 起步依赖
  • 内嵌容器支持
  • Actuator 监控
  • 启动源码分析

引用详情: https://blog.csdn.net/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.csdn.net/chen801090/article/details/107210913

11. Spring Boot 加载配置文件的优先级了解吗
  1. SpringBoot配置文件
    SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。两者同时存在情况,可见在同一目录下,properties配置优先级 > YAML配置优先级。所以我们在jar包启动时带上properties写法的配置可以覆盖配置.
  2. 配置文件目录
    SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。
    可放置目录(优先级从高到低):
> file:./config/ (当前项目路径config目录下); 
> file:./ (当前项目路径下);
> classpath:/config/ (类路径config目录下);
> classpath:/ (类路径config下).

优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载配置文件并互补配置;

  1. 自定义配置属性
  2. 指定配置文件

文章详情: https://blog.csdn.net/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.csdn.net/weixin_42466157/article/details/104414930

14. Spring Boot 如何做请求参数校验

springboot本身提供了一个验证框架validation,在springboot2.3.x版本以后将这个依赖移除了,所以2.3以后的版本请手动添加,2.3以下的版本则不需要自己添加。
在需要验证的接受参数前添加@Validated注解,定义的规则生效。

15. 如何使用 Spring Boot 实现全局异常处理
  1. Spring 的AOP (较复杂)
  2. @ControllerAdvice 结合 @ExceptionHandler

引用: https://blog.csdn.net/songguopeng/article/details/98961787

16. Spring Boot 中如何实现定时任务

在启动类中加入@EnableScheduling来开启定时任务, 然后再需要定时任务的方法上加入@Scheduled 注解 , 配置cron 表达式。除了该表达式外,还可以使用fixedRate,fixedDelay等来作为时间配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值