springboot面试题

本文介绍了SpringBoot的优点,包括内置servlet容器、starter简化配置、快速搭建Spring应用,以及它与JavaWeb、Spring、SpringMVC的区别。此外,详细讲述了SpringBoot的starter机制、运行方式和常用Starter,以及核心注解@SpringBootApplication的作用。

1.Springboot的优点

内置servlet容器,不需要在服务器部署 tomcat。只需要将项目打成 jar 包,使用 java -jar xxx.jar一键式启动项目

SpringBoot提供了starter,把常用库聚合在一起,简化复杂的环境配置,快速搭建spring应用环境

可以快速创建独立运行的spring项目,集成主流框架

准生产环境的运行应用监控

2.Javaweb、spring、springmvc和springboot有什么区别,都是做什么用的?

javaWeb是 Java 语言的 Web 开发技术,主要用于开发 Web 应用程序,包括基于浏览器的客户端和基于服务器的 Web 服务器。

Spring是一个轻量级的开源开发框架,主要用于管理 Java 应用程序中的组件和对象,并提供各种服务,如事务管理、安全控制、面向切面编程和远程访问等。它是一个综合性框架,可应用于所有类型的 Java 应用程序。

SpringMVC是 Spring 框架中的一个模块,用于开发 Web 应用程序并实现 MVC(模型-视图-控制器)设计模式,它将请求和响应分离,从而使得应用程序更加模块化、可扩展和易于维护。

Spring Boot是基于 Spring 框架开发的用于开发 Web 应用程序的框架,它帮助开发人员快速搭建和配置一个独立的、可执行的、基于 Spring 的应用程序,从而减少了繁琐和重复的配置工作。

综上所述,JavaWeb是基于 Java 语言的 Web 开发技术,而 Spring 是一个综合性的开发框架,SpringMVC用于开发 Web 应用程序实现 MVC 设计模式,而 Spring Boot 是基于 Spring 的 Web 应用程序开发框

3.SpringBoot 中的 starter 到底是什么 ?

starter提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。

4.运行 SpringBoot 有哪几种方式?

  1. 打包用命令或者者放到容器中运行
  2. 用 Maven/Gradle 插件运行
  3. 直接执行 main 方法运行

5.SpringBoot 常用的 Starter 有哪些?

spring-boot-starter-web :提供 Spring MVC + 内嵌的 Tomcat 。

spring-boot-starter-data-jpa :提供 Spring JPA + Hibernate 。

spring-boot-starter-data-Redis :提供 Redis 。

mybatis-spring-boot-starter :提供 MyBatis 。

6.Spring Boot 的核心注解是哪个?

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

  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
  • @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
  • @ComponentScan:Spring组件扫描。
### 常见Spring Boot面试题及答案 #### 1. 什么是Spring BootSpring Boot 是一个基于 Spring 框架的开源项目,旨在简化新 Spring 应用的初始搭建和开发。它通过自动配置和起步依赖减少了配置的复杂性,使得开发者可以快速创建独立的、生产级的应用程序[^1]。 #### 2. Spring Boot的核心特性有哪些? - **自动配置**:根据类路径上的依赖项自动配置 Spring 应用程序。 - **起步依赖**:提供简化的依赖管理,减少 Maven 或 Gradle 配置。 - **内嵌的服务器**:支持内嵌的 Tomcat、Jetty 等服务器,无需单独部署 WAR 文件。 - **外部化配置**:支持通过 `application.properties` 或 `application.yml` 文件进行配置。 - **Actuator**:提供生产就绪的功能,如健康检查、度量指标等。 #### 3. 什么是Spring Boot Starter? Spring Boot Starter 是一种特殊的依赖项,它封装了特定功能所需的依赖库和自动配置。通过引入 Starter,开发者可以快速集成常用功能,而无需手动管理多个依赖。例如,`spring-boot-starter-web` 提供了构建 Web 应用所需的所有依赖[^3]。 #### 4. 如何禁用Spring Boot的自动配置? 可以通过在主应用程序类上使用 `@SpringBootApplication` 注解的 `exclude` 属性来禁用特定的自动配置类。例如: ```java @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` #### 5. 什么是条件注解?列举几个常见的条件注解。 条件注解用于控制某些配置是否生效,根据特定条件决定是否创建 Bean。常见的条件注解包括: - `@ConditionalOnClass`:当指定的类存在于类路径中时,配置生效。 - `@ConditionalOnMissingClass`:当指定的类不存在于类路径中时,配置生效。 - `@ConditionalOnBean`:当指定的 Bean 存在于 Spring 容器中时,配置生效。 - `@ConditionalOnMissingBean`:当指定的 Bean 不存在于 Spring 容器中时,配置生效[^2]。 #### 6. 如何自定义Spring Boot的Starter? 创建自定义 Starter 通常包括以下步骤: 1. **定义自动配置类**:使用 `@Configuration` 注解定义配置类,并通过条件注解控制配置的生效条件。 2. **创建配置属性类**:定义一个 POJO 类来映射配置文件中的属性。 3. **创建 `spring.factories` 文件**:在 `src/main/resources/META-INF/spring.factories` 文件中注册自动配置类。 4. **发布到 Maven 仓库**:将自定义 Starter 发布到 Maven 仓库,供其他项目使用。 #### 7. Spring Boot中的Actuator是什么?如何启用它? Actuator 是 Spring Boot 提供的一个模块,用于监控和管理应用程序。它提供了许多端点(如 `/health`、`/info`、`/metrics` 等),可以帮助开发者了解应用的运行状态。要启用 Actuator,只需在项目中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ``` 然后可以通过 `application.properties` 或 `application.yml` 配置端点的行为。 #### 8. 如何在Spring Boot中实现国际化? Spring Boot 支持通过 `MessageSource` 接口实现国际化。具体步骤包括: 1. **创建消息属性文件**:在 `src/main/resources` 目录下创建多个语言的属性文件,如 `messages_en.properties` 和 `messages_zh.properties`。 2. **配置 `MessageSource` Bean**:在配置类中定义 `MessageSource` Bean,并指定基础名称。 3. **使用 `@Transactional` 注解**:在需要国际化的地方注入 `MessageSource` 并调用其方法获取对应语言的消息。 #### 9. 如何在Spring Boot中实现缓存? Spring Boot 提供了对多种缓存技术的支持,如 Caffeine、EhCache、Redis 等。要启用缓存,首先需要添加相应的依赖,然后使用 `@EnableCaching` 注解启用缓存功能,并在服务层使用 `@Cacheable`、`@CachePut` 和 `@CacheEvict` 等注解来管理缓存数据[^1]。 #### 10. Spring Boot中的Profiles是什么?如何使用? Profiles 用于区分不同的环境配置,如开发环境、测试环境和生产环境。可以通过 `application-{profile}.properties` 或 `application-{profile}.yml` 文件来定义不同环境的配置。在运行应用时,可以通过设置 `spring.profiles.active` 属性来指定当前激活的 Profile[^1]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值