2021 Spring框架面试精华:实战题+答案解析

需积分: 5 0 下载量 178 浏览量 更新于2024-08-03 收藏 4KB MD 举报
本文档是一份Spring框架2021年的面试题汇总,涵盖了Spring Boot、IoC(Inversion of Control)、Spring MVC测试、Spring Cloud以及Eureka服务注册与发现的相关知识点。以下是详细解析: 1. **Spring Boot运行方式**: Spring Boot项目可以通过以下几种方式进行运行: - 打包成jar包:使用`java-jar`命令行工具直接运行,例如`java -jar xxx.jar`。 - 打包成war包:将项目部署到Tomcat或其他应用服务器,通过web容器进行访问。 - Maven插件:使用`mvn spring-boot:run`命令,可以直接执行主类中的`main`方法启动项目。 2. **IoC优点**: - **解耦**:IoC使得代码之间松散耦合,降低模块间的相互依赖,便于维护和扩展。 - **测试友好**:由于IoC容器可以隔离组件间的依赖关系,使得单元测试更为简单,无需关心复杂的初始化和配置。 - **灵活性**:支持懒加载和饿汉式初始化策略,允许在适当的时候提供服务实例。 3. **Spring MVC的WebMvcTest**: WebMvcTest是Spring MVC提供的一个注解,用于进行轻量级的集成测试,仅启动指定的控制器(如`ToTestController`),避免了不必要的上下文启动,提高测试效率。 4. **Spring Cloud简介**: Spring Cloud是基于Spring框架的一系列工具集合,主要帮助开发者快速构建分布式系统,包括配置管理、服务发现、断路器等常见模式,简化微服务架构的开发和运维。 5. **Eureka服务注册与发现原理**: Eureka是Spring Cloud中的服务注册与发现组件。它通过心跳检测保持客户端与服务注册中心的连接,客户端定期发送心跳以维持服务注册。当客户端无法更新心跳时,会在一定时间内从注册中心移除。服务信息的更新和复制确保了高可用性,客户端可以缓存服务实例信息,即使Eureka全服务不可用,也能继续访问服务。 6. **Spring Boot配置文件加载顺序**: Spring Boot的配置文件加载遵循特定顺序:首先查找jar包外部的`application-{profile}.properties`或`application-{profile}.yaml`文件(如果有profile,则使用对应的版本),然后在jar包内部搜索相同的文件名。如果没有找到,则依次寻找更通用的`application.properties`和`application.yml`,最后是默认的Spring Boot内置配置。 掌握这些知识点可以帮助应聘者在Spring框架的面试中展示深厚的理解和实践经验,无论是技术选型还是项目实施都有所准备。