Spring Boot 概述

1.Spring Boot 概述

Spring Boot 是一个基于 Spring 框架的开源项目,它旨在简化基于 Spring 的应用开发。通过使用 Maven 或 Gradle,Spring Boot 提供了自动配置、起步依赖(Starter Dependencies)等特性,极大地加速了 Spring 应用的开发、测试和部署过程。

2.Spring Boot 启动类注解 @SpringBootApplication 自动配置原理

@SpringBootApplication 是一个方便的注解,它包含了三个关键功能:

  • @SpringBootConfiguration:表明该类是一个配置类,等同于 Spring 的 @Configuration 注解。
  • @EnableAutoConfiguration:开启 Spring Boot 的自动配置特性。Spring Boot 会根据添加的 jar 包依赖来自动配置 Spring 应用。例如,如果 classpath 下存在 spring-boot-starter-web,Spring Boot 会自动配置 Tomcat 和 Spring MVC。
  • @ComponentScan:告诉 Spring 在包和子包中查找其他组件、配置和服务,自动注册它们为 Spring 应用上下文中的 bean。

3.Spring Boot 的运行方式

  1. 打包成可执行的 JAR/WAR 文件:使用 Maven 或 Gradle 打包应用,然后通过 java -jar 命令运行。
  2. 使用 Maven/Gradle 插件运行:直接在 IDE 中或通过命令行使用 Maven/Gradle 的 spring-boot:run 命令启动应用。
  3. 直接执行 main 方法:在 IDE 中直接运行包含 @SpringBootApplication 注解的类的 main 方法。

4.Spring Boot 管理事务的方式

Spring Boot 简化了事务管理,支持基于注解的事务管理。

  • 注解方式
    • 在主启动类上添加 @EnableTransactionManagement 注解(实际上,如果你已经使用了 @SpringBootApplication,则不需要显式添加,因为它已经包含了 @EnableTransactionManagement)。
    • 在需要事务控制的 service 类或方法上添加 @Transactional 注解。Spring 会在运行时自动地为这些方法提供事务支持。
  • XML 配置方式(不常用,但在一些老旧项目中可能见到):
    • 通过配置 DataSourceTransactionManager 和 transactionManager bean 来实现。

5.日志级别

Spring Boot 使用了 SLF4J 作为日志门面,并允许通过 application.properties 或 application.yml 文件配置日志级别。日志级别从低到高依次为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL。

  • 如果设置为 WARN,则低于 WARN 的信息(如 TRACE、DEBUG、INFO)都不会输出。
  • Spring Boot 默认使用 INFO 级别输出到控制台。

6.Spring Boot 全局异常处理

Spring Boot 支持通过 @ControllerAdvice 和 @ExceptionHandler 注解来全局处理异常。

  • 全局异常处理类:使用 @ControllerAdvice 注解定义一个全局异常处理类。
  • 捕获并处理异常:在类中定义一个或多个方法,并使用 @ExceptionHandler 注解来指定它们应该捕获哪些类型的异常。
  • 自定义异常响应:在这些方法中,你可以根据捕获的异常类型来决定返回什么样的响应给客户端,包括错误码、错误信息和数据等。

7.面试相关补充

  • Spring Boot Actuator:Spring Boot Actuator 提供了对应用监控和管理的端点(Endpoints),通过 HTTP、JMX 等方式暴露应用运行信息,如健康检查、环境变量、线程信息、日志级别调整等。
  • Spring Profiles:允许你根据不同的环境(如开发、测试、生产)来定义不同的配置,提高了配置的灵活性和可管理性。
  • Spring Boot 与微服务:Spring Boot 是构建微服务的理想选择,它提供了快速开发、易于部署和自动配置等特性,非常适合用于构建微服务架构。
  • 安全性:Spring Boot 可以通过集成 Spring Security 来提供安全性支持,包括用户认证、授权、加密通信等。
  • 性能测试:在面试中,面试官可能会询问你如何进行 Spring Boot 应用的性能测试,以及你熟悉的性能测试工具(如 JMeter、Gatling)。
  • 31
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值