分享20道精选SpringBoot面试题,值得Mark一波

Java岗面试问到SpringBootè¿˜æŸæ‰‹æ— ç­–ï¼Ÿè¿™20道精选面试题了解一下

一、什么是 Spring Boot?

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各类启动器,开发者能快速上手。前端

二、Spring Boot有哪些优势?

减小开发,测试时间和努力。java

使用JavaConfig有助于避免使用XML。web

避免大量的Maven导入和各类版本冲突。spring

提供意见发展方法。编程

经过提供默认值快速开始开发。bootstrap

没有单独的Web服务器须要。这意味着你再也不须要启动Tomcat,Glassfish或其余任何东西。安全

须要更少的配置 由于没有web.xml文件。只需添加用@ Configuration注释的类,而后添加用@Bean注释的方法,Spring将自动加载对象并像之前同样对其进行管理。您甚至能够将@Autowired添加到bean方法中,以使Spring自动装入须要的依赖关系中。基于环境的配置 使用这些属性,您能够将您正在使用的环境传递到应用程序:-Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring将在(application{environment} .properties)中加载后续的应用程序属性文件。bash

三、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。服务器

application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。app

bootstrap 配置文件有如下几个应用场景。

使用 Spring Cloud Config 配置中心时,这时须要在 bootstrap 配置文件中添加链接到配置中心的配置属性来加载外部配置中心的配置信息; 一些固定的不能被覆盖的属性;一些加密/解密的场景

四、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不一样。

1 , properties

app.user.name = javastack复制代码

2, yml

app: user: name: javastack复制代码

五、Spring Boot 的核心注解是哪一个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解 主要组合包含了如下 3 个注解:

1.@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

2.@EnableAutoConfiguration:打开自动配置的功能,也能够关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

3.@ComponentScan:Spring组件扫描。

六、开启 Spring Boot 特性有哪几种方式?

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

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

七、Spring Boot 须要独立的容器运行吗?

能够不须要,内置了 Tomcat/ Jetty 等容器。

八、运行 Spring Boot 有哪几种方式?

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

2.用 Maven/ Gradle 插件运行

3.直接执行 main 方法运行

九、Spring Boot 自动配置原理是什么?

注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。

十、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?

配置变动

JDK 版本升级

第三方类库升级

响应式 Spring 编程支持

HTTP/2 支持

配置属性绑定

更多改进与增强…

11 , 如何使用Spring Boot实现分页和排序?

使用Spring Boot实现分页很是简单。使用Spring Data-JPA能够实现将可分页的org.springframework.data.domain.Pageable传递给存储库方法。

12,如何实现Spring Boot应用程序的安全性?

为了实现Spring Boot的安全性,咱们使用 spring-boot-starter-security依赖项,而且必须添加安全配置。它只须要不多的代码。配置类将必须扩展WebSecurityConfigurerAdapter并覆盖其方法。

13,如何集成Spring Boot和ActiveMQ?

对于集成Spring Boot和ActiveMQ,咱们使用spring-boot-starter-activemq 依赖关系。 它只须要不多的配置,而且不须要样板代码。

1四、什么是YAML?

YAML是一种人类可读的数据序列化语言。它一般用于配置文件。 与属性文件相比,若是咱们想要在配置文件中添加复杂的属性,YAML文件就更加结构化,并且更少混淆。能够看出YAML具备分层配置数据。

15,Spring Boot中的监视器是什么?

Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即便一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接做为HTTP URL访问的REST端点来检查状态。

16 ,什么是Swagger?你用Spring Boot实现了它吗?

Swagger普遍用于可视化API,使用Swagger UI为前端开发人员提供在线沙箱。Swagger是用于生成RESTful Web服务的可视化表示的工具,规范和完整框架实现。它使文档可以以与服务器相同的速度更新。当经过Swagger正肯定义时,消费者可使用最少许的实现逻辑来理解远程服务并与其进行交互。所以,Swagger消除了调用服务时的猜想。

17,如何使用Spring Boot实现异常处理?

Spring提供了一种使用ControllerAdvice处理异常的很是有用的方法。 咱们经过实现一个ControlerAdvice类,来处理控制器类抛出的全部异常。

18,RequestMapping 和 GetMapping 的不一样之处在哪里?

RequestMapping 具备类属性的,能够进行 GET,POST,PUT 或者其它的注释中具备的请求方法。

GetMapping 是 GET 请求方法中的一个特例。它只是 ResquestMapping 的一个延伸,目的是为了提升清晰度。

1九、Spring Boot 能够兼容老 Spring 项目吗,如何作?

能够兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

20、保护 Spring Boot 应用有哪些方法?

在生产中使用HTTPS 使用Snyk检查你的依赖关系 升级到最新版本 启用CSRF保护 使用内容安全策略防止XSS攻击

相关文章
相关标签/搜索