• Spring Boot 框架知识汇总


    1、什么是SpringBoot?
    通过Spring Boot,可以轻松地创建独立的,基于生产级别的Spring的应用程序,您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置,集成了大量常用的第三方库配置,使得这些库在Spring Boot应用中几乎可以零配置地开箱即用。
    2、SpringBoot的特征?
    ◆ 创建独立的Spring应用程序,Spring Boot应用程序可以作为独立的可执行JAR或WAR文件运行,这使得部署和分发变得非常简单。
    ◆ 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
    ◆ 提供固化的“starter"依赖项,以简化构建配置
    ◆ 尽可能自动配置Spring 和3rd Party库
    ◆ 提供可用于生产的功能,例如指标,运行状况检查和外部化配置
    ◆ 完全没有代码生成,也不需要XML配置
    3、如何快速构建一个SpringBoot项目?
    ◆ 通过Web界面使用。http://start.spring.io
    ◆ 通过Spring Tool Suite使用。
    ◆ 通过IntelliJ IDEA使用。
    ◆ 使用Spring Boot CLI使用。
    4、SpringBoot启动类注解是啥,它是由哪些注解组成?
    @SpringBootApplication
    这是Spring Boot项目的核心注解,通常放在主类上。它实际上是@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan的组合,也可以用这三个注解来代替 @SpringBootApplication 注解。
    ◆ @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
    ◆ @EnableAutoConfiguration: 打开自动配置的功能,也可以关闭某个自动配置的选项。
    ◆ @ComponentScan:Spring 组件扫描,自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。
    5、什么是yaml?
    YAML文件格式是Spring Boot支持的一种JSON超集文件格式,以数据为中心,比properties、xml等更适合做配置文件。
    YAML(/'iamal/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl。更具有结构性。
    ◆ yml和xml相比,少了一些结构化的代码,使数据更直接,一目了然
    ◆ 相比properties文件更简洁
    ◆ yaml文件的扩展名可以使用.yml或者.yaml。
    ◆ application.yml文件使用 “key:(空格)value”格式配置属性,使用缩进控制层级关系。

    spring:
      profiles:
        active: test
    swagger:
      production: false
      basic:
        enable: false
        username: jeecg
        password: jeecg1314
    

    6、SpringBoot 支持配置文件的格式
    (1) properties
    java.microservice.name=leishi
    (2) yml
    java :
    microservice:
    name:leishi
    7、SpringBoot启动方式?
    ◆ main方法
    ◆ 命令行 java -jar 的方式
    ◆ mvn/gradle
    8、application.properties 和 application.yml 文件可放位置及优先级
    1).外置,在相对于应用程序运行目录的/config子目录里。
    2). 外置,在应用程序运行的目录里。
    3). 内置,在config包内。
    4). 内置,在Classpath根目录。
    这个列表按照优先级排序,优先级高的会覆盖优先级低的。
    当然我们可以自己指定文件的位置来加载配置文件,如

    java -jar xiaoka.jar-spring.config.location=/home/application.yml
    

    如果是2.4.0之前版本,优先级properties>yaml;但是如果是2.4.0的版本,优先级yaml>properties。
    9、bootstrap.yml 和 application.yml
    bootstrap.yml 优先于application.yml
    10、SpringBoot如何修改端口号?
    除了在配置文件 yml 和properties 中修改 server.port 的值外,还可以启动时用命令修改:
    命令1:

    java -iar leishi.jar --server.port=8080
    

    命令2:

    java-Dserver.port=8080 -jar leishi.jar
    

    11、SpringBoot 配置监控

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    12、针对请求访问的几个组合注解?
    ◆ @PatchMapping
    ◆ @PostMMapping
    ◆ @GetMMapping
    ◆ @PutMapping
    ◆ @DeleteMMapping
    13、SpringBoot 中的 starter
    可以理解成对依赖的一种合成,starter会把一个或一套功能相关依赖都包含进来,避免了自己去依赖费事,还有各种包的冲突问题。大大的提升了开发效率。
    并且相关配置会有一个默认值,如果我们自己去配置,就会覆盖默认值。
    14、SpringBoot 集成 Mybatis
    mybatis-spring-boot-starter
    15、不同的环境的配置文件
    可以是 application-{profle}.properties/yml,但默认是启动主配置文件application.properties,一般来说我们的不同环境配置如下。
    ◆ application.properties:主配置文件
    ◆ application-dev.properties:开发环境配置文件
    ◆ application-test.properties:测试环境配置文件
    ◆ application.prop-properties:生产环境配置文件
    16、如何激活某个环境的配置?
    比如我们激活开发环境。
    (1) yml 文件配置:

    spring:
        profiles:
            active: dev
    

    (2) properties 文件配置:

    spring.profiles.active=dev
    

    (3) 命令行:

    java -jar leishi-v1.0.jar.--spring.profiles.active=dev
    

    17、编写测试用例的注解
    @SpringBootTest
    18、SpringBoot 异常处理相关注解
    ◆ @ControllerAdvice
    ControllerAdvice是Spring框架中的一个注解,用于增强Controller的功能。它可以应用于整个应用程序中的所有Controller,或者通过指定包或注解来应用于特定的Controller。这个注解主要用于全局处理一些共通的操作或处理,例如全局异常处理、全局数据绑定、全局数据预处理等。
    它通常注解在类上
    ◆ @ExceptionHandler
    它注解在具体的异常方法上,例如

    // 你还可以为特定的异常类型定义处理方法
    @ExceptionHandler(value = CustomException.class)
    public ResponseEntity<Object> handleCustomException(CustomException ex) {
            return new ResponseEntity<>("自定义异常:" + ex.getMessage(), HttpStatus.BAD_REQUEST);
    }
    

    19、SpringBoot 读取配置相关注解有
    ◆ @PropertySource
    ◆ @Value
    ◆ @Environment
    ◆ @ConfigurationProperties

  • 相关阅读:
    C# HttpPost WebApi调用
    回溯算法的应用
    springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)
    加密后的敏感字段还能进行模糊查询吗?该如何实现?
    python判断字符串是否全为空字符——isspace函数的用法及实例
    PP-Tracking的ROS功能包
    行业洞察 | 谁动了艺术家的奶酪?
    制作一个简单HTML静态网页(HTML+CSS)
    息肉分割(Polyp Segmentation)方向常用数据集汇总
    【ARK UI】【HarmonyOS】鸿蒙跳转action说明
  • 原文地址:https://blog.csdn.net/qq_39964887/article/details/140387451