SpringBoot 面试题, Spring Boot 2.x 与 1.x 版本有哪些主要的改进和区别?
SpringBoot 面试题, Spring Boot 2.x 与 1.x 版本有哪些主要的改进和区别?
QA
Step 1
Q:: Spring Boot 2.x 与 1.
x 版本有哪些主要的改进和区别?
A:: Spring Boot 2.
x 版本在多个方面进行了改进,包括:
1. **基础设施升级**:支持 Java 8 及以上版本,支持 Spring Framework 5.
x。
2.
WebFlux 支持:新增对反应式编程的支持,WebFlux 是一个非阻塞的 Web 框架。
3.
配置属性的变化:配置文件的默认后缀从 .properties
改为 .yml
,并且引入了更灵活的配置属性。
4.
监控和管理改进:集成了 Micrometer 度量库,提供了更多的监控和度量指标。
5. **安全性增强**:改进了默认的安全配置,更容易集成 OAuth2
和 OpenID Connect。
6.
性能优化:改进了启动时间和内存占用,提升了应用的整体性能。
7. **嵌入式服务器改进**:默认使用 Tomcat 9.x,支持 Jetty 10.x 和 Undertow 2.
x。
8.
Spring Data JPA 改进:提供更简洁的 Repository 定义和更强大的查询功能。
Step 2
Q:: Spring Boot 2.
x 如何支持反应式编程?
A:: Spring Boot 2.
x 引入了 Spring WebFlux 模块,用于支持反应式编程。WebFlux 是一个非阻塞的、响应式的 Web 框架,基于 Reactor 库。主要特点包括:
1.
非阻塞 IO:所有操作都是异步和事件驱动的。
2.
背压支持:通过 Publisher 和 Subscriber 的机制处理数据流。
3.
高并发性能:更适合处理高并发请求的场景,尤其是 IO 密集型应用。
Step 3
Q:: 如何在 Spring Boot 2.
x 中进行监控和管理?
A:: Spring Boot 2.
x 提供了更强大的监控和管理功能,主要通过 Actuator 模块和 Micrometer 度量库实现。Actuator 提供了一系列的端点,用于查看应用的运行状态和性能指标。Micrometer 则允许将这些指标发送到各种监控系统,如 Prometheus、Graphite、InfluxDB 等。具体步骤包括:
1.
添加依赖:在 pom.xml
中添加 Actuator 和 Micrometer 的依赖。
2.
配置 Actuator 端点:在 application.yml
中配置哪些端点需要开启。
3.
集成 Micrometer:配置 Micrometer 使其将数据发送到所需的监控系统。