文章目录
-
- 一、概述
- 二、配置
- 三、安全
- 四、监视器
- 五、整合第三方项目
- 六、其他
-
- 1、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署?
- 2、在项目中你使用了哪些 starter maven 依赖项?
- 3、Spring Boot 中的 starter 到底是什么?
- 4、spring-boot-starter-parent 有什么用?
- 5、Spring Boot 打成的 jar 和普通的 jar 有什么区别?
- 6、运行 Spring Boot 有哪几种方式?
- 7、Spring Boot 需要独立的容器运行吗?
- 8、开启 Spring Boot 特性有哪几种方式?
- 9、如何使用 Spring Boot 实现异常处理?
- 10、如何使用 Spring Boot 实现分页和排序?
- 11、微服务中如何实现 session 共享?
- 12、Spring Boot 中如何实现定时任务?
一、概述
1、什么是 Spring Boot?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
2、Spring Boot 有哪些优点?
- 容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。
- 开箱即用,远离繁琐的配置。
- 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。
- 没有代码生成,也不需要XML配置。
- 避免大量的 Maven 导入和各种版本冲突。
3、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
- @ComponentScan:Spring组件扫描。
二、配置
1、什么是 JavaConfig?
Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:
(1)面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean 方法等。
(2)减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。JavaConfig 为开发人员提供了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。从技术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的,但实际上很多人认为将JavaConfig 与 XML 混合匹配是理想的。
(3)类型安全和重构友好。JavaConfig 提供了一种类型安全的方法来配置 Spring容器。由于 Java 5.0 对泛型的支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字符串的查找。
2、Spring Boot 自动配置原理是什么?
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心。
@EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类。
筛选有效的自动配置类。
每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能。
3、你如何理解 Spring Boot 配置文件的加载顺序?
依次为: bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
同一级别的配置文件,先加载的会被后加载的覆盖掉,所以.properties和.yml同时存在时,.properties会失效,.yml会起作用。
bootstrap配置文件不会被application配置文件覆盖。
4、什么是 YAML?
YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。
5、YAML 配置的优势在哪里?
YAML 现在可以算是非常流行的一种配置文件格式了,无论是前端还是后端,都可以见到 YAML 配置。那么 YAML 配置和传统的 properties 配置相比到底有哪些优势呢?
- 配置有序,在一些特殊的场景下,配置有序很关键
- 支持数组,数组中的元素可以是基本数据类型也可以是对象
- 简洁明了
相比 properties 配置文件,YAML 还有一个缺点,就是不支持 @PropertySource 注解导入自定义的 YAML 配置。
6、Spring Boot 是否可以使用 XML 配置?
Spring Boot 推荐使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通过 @ImportResource 注解可以引入一个 XML 配置。
7、Spring boot 核心配置文件是什么?
单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是在结合 Spring Cloud 时,这个配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。
Spring boot 核心的两个配置文件:
- bootstrap (. yml 或者 . properties):boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;
- application (. yml 或者 . properties):由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。
8、bootstrap.properties 和 application.properties 有何区别?
bootstrap.properties先加载,且不会被application.properties覆盖。
bootstrap 配置文件有以下几个应用场景:
- 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
- 一些固定的不能被覆盖的属性;
- 一些加密/解密的场景。
9、什么是 Spring Profiles?
Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有其他文档。这可以使用配置文件来完成。Spring Boot 使得使用配置文件非常简单。
10、如何在自定义端口上运行 Spring Boot 应用程序?
可以在application.properties 中指定端口。server.port = 8090
11、Spring Boot的启动类到底执行了什么?

三、安全
1、如何实现 Spring Boot 应用程序的安全性?
为了实现 Spring Boot 的安全性,我们使用 spring-boot
本文详细探讨了Spring Boot的核心概念、配置、安全、监视器、整合第三方项目及其他关键知识点。从Spring Boot的优缺点、核心注解到配置文件加载顺序、安全配置,再到Actuator端点和跨域解决方案,全方位剖析了Spring Boot在实际开发中的应用。同时,讨论了与Spring Security、Shiro的比较,以及如何实现WebSockets、Spring Data、Spring Batch等第三方项目集成。此外,还涵盖了热部署、接口文档维护、异常处理、分页排序以及微服务中的session共享等话题。
最低0.47元/天 解锁文章
982

被折叠的 条评论
为什么被折叠?



