Java程序员面试总结(二):SpringBoot/SpringCloud

本文详细介绍了SpringBoot的启动流程,包括执行main方法、创建ApplicationContext、自动配置、Bean加载、应用程序事件发布、Web服务器启动和执行特定接口方法。此外,文章还探讨了SpringBoot的优点、Starter的作用、自动化配置和核心注解,以及SpringCloud的相关模块和功能如Eureka、Zookeeper、容错和负载均衡。
摘要由CSDN通过智能技术生成

1.SpringBoot启动流程

Spring Boot 启动过程是相对复杂的,但我将尽量以简明的方式概述主要步骤。Spring Boot 提供了一种简化的方式来构建和配置 Spring 应用程序。以下是 Spring Boot 启动的主要步骤:

  1. 执行 main 方法: Spring Boot 应用程序的入口点是一个包含 main 方法的类。该方法是 Java 应用程序的入口,通过执行这个方法来启动 Spring Boot 应用。

    public class MyApplication {
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    }
    
  2. 创建 Spring 应用程序上下文: SpringApplication.run 方法会创建一个 Spring 应用程序上下文(ApplicationContext)。应用程序上下文是 Spring 框架中用于管理 bean 的核心对象。

  3. 启动 Spring Boot 自动配置: Spring Boot 使用约定大于配置的原则,自动配置很多常见的场景,减少了手动配置的工作。在这个阶段,Spring Boot 自动配置会根据项目中的依赖、配置文件和其他条件来配置应用程序。

  4. 扫描并加载 Bean: Spring Boot 会自动扫描应用程序中的包,查找被 @Component 注解(包括 @Service@Repository@Controller 等)标记的类,并将它们注册为 Spring bean。

  5. 应用程序事件发布: Spring Boot 会发布各种应用程序事件,允许开发者在应用程序的不同生命周期阶段执行自定义逻辑。例如,可以监听 ApplicationStartedEvent 事件来执行应用程序启动后的逻辑。

  6. 嵌入式 Web 服务器启动: 如果应用程序是一个 Web 应用,Spring Boot 会自动配置并启动嵌入式的 Web 服务器(如Tomcat、Jetty等),并将应用程序部署到这个服务器上。

  7. 执行 CommandLineRunnerApplicationRunner 如果有实现了 CommandLineRunnerApplicationRunner 接口的 bean,Spring Boot 会在应用程序启动后执行它们的 run 方法。这提供了一种在应用程序启动时执行一些自定义逻辑的方式。

  8. 应用程序启动完成: 当所有的配置和初始化都完成后,Spring Boot 会发出应用程序已启动的事件,并正式对外提供服务。

2.SpringBoot优点

Spring Boot 是基于 Spring 框架的一个开发框架,它在开发企业级 Java 应用程序时提供了一系列的优势和便利。以下是 Spring Boot 的一些主要优点:

  1. 简化配置: Spring Boot 遵循"约定优于配置"的原则,提供了很多默认配置,减少了大量的配置工作。开发者不再需要手动配置大量的 XML 或注解,可以更专注于业务逻辑的开发。

  2. 快速开发: Spring Boot 提供了很多快速开发的工具,如自动配置、快速部署等,可以极大地提高开发效率。项目搭建和配置非常简单,可以在短时间内创建一个可运行的应用程序。

  3. 内嵌式 Web 服务器: Spring Boot 集成了常见的内嵌式 Web 服务器(如Tomcat、Jetty、Undertow),开发者无需手动配置服务器,直接通过 java -jar 命令就能运行应用程序。

  4. 微服务支持: Spring Boot 对构建微服务架构提供了良好的支持。它可以轻松创建独立的、基于 RESTful 的微服务,并提供了 Spring Cloud 生态系统来简化分布式系统的开发。

  5. 自动配置: Spring Boot 提供了大量的自动配置,根据项目的依赖自动配置应用程序,避免了繁琐的手动配置。当然,也可以进行个性化的配置以满足特定需求。

  6. 开发体验优秀: Spring Boot 提供了强大的开发工具,如热部署、自动重启等,提高了开发体验。开发者可以更方便地调试和修改代码。

  7. 集成广泛: Spring Boot 与 Spring 生态系统完美集成,支持众多的第三方库和插件,如 Spring Data、Spring Security、Spring Batch 等,使开发更为便捷。

  8. 自动化管理: Spring Boot 集成了 Maven 或 Gradle 构建工具,可以很方便地进行依赖管理、版本管理等。同时,Spring Boot Act

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值