SpringBoot—基础特性

发布时间:2023年12月31日

与其明天开始,不如现在行动!


基础特性

1 SpringApplication

1.1 自定义banner

  1. 在resources文件夹下创建banner.txt或设置spring.banner.location就可以定制banner

  2. 在百度搜索:Spring Boot banner 在线生成工具

    spring:
      banner:
        location: classpath:banner.txt #自定义banner
      main:
        banner-mode: off #关闭banner
    

2.2自定义SpringApplication

  1. 官方写法

    @SpringBootApplication // 主程序类
    public class UsercentersApplication {
        public static void main(String[] args) {
            // SpringApplication:Boot应用的核心API入口
            SpringApplication.run(UsercentersApplication.class, args);
        }
    }
    
  2. 自定义写法

    @SpringBootApplication // 主程序类
    public class UsercentersApplication {
        public static void main(String[] args) {
            // 1.自定义SpringApplication底层设置
            SpringApplication springApplication = new SpringApplication(UsercentersApplication.class);
    
            // 自定义配置
            springApplication.setBannerMode(Banner.Mode.CONSOLE);
    
            // 2.运行SpringApplication
            springApplication.run(args);
        }
    }
    
  3. FlenBuilder API

    @SpringBootApplication // 主程序类
    public class UsercentersApplication {
        public static void main(String[] args) {
            // Builder方式构建SpringApplication:通过Flent API进行设置
            new SpringApplicationBuilder()
                    .sources(UsercentersApplication.class)
                    .bannerMode(Banner.Mode.CONSOLE)
                    .run(args);
        }
    }
    

2 Profile

环境隔离能力,快速切换开发、测试、生产环境

步骤:

  1. 标识环境:指定哪些组件、配置在哪个生效
  2. 切换环境:这个环境对应的所有组件和配置就应该生效

2.1 环境隔离

  1. 标识环境:指定哪些组件、配置在哪个生效

    1. dev(开发环境)、test(测试环境)、prod(生产环境)
    2. Spring Profiles提供了一种隔离配置的方式,使其尽在特定环境生效
    3. 容器中的组件都可以被@Profile标记:@Profile(“dev”)
  2. 切换环境:这个环境对应的所有组件和配置就应该生效

    1. 配置文件中激活指定环境

      spring:
        profiles:
          active: dev
      
    2. 命令行激活

      java -jar xxx.jar --spring.profiles.active=dev

    3. 还可以配置默认环境

      1. 不标注@Profile的组件,任意时刻都激活
      2. 默认环境叫default
      3. 可以在配置文件修改:spring.profiles.default=dev

2.2 配置文件

  1. application.yaml:主配置文件,任何情况下都生效
  2. 其它环境命名规范:application-{profile标识}.yaml
    1. 开发环境:application-dev.yaml
    2. 生产环境:application-prod.yaml
  3. 激活指定环境即可
    1. 配置文件激活
    2. 命令行激活
  4. 效果
    1. 生效配置 = 激活环境的所有项 + 主配置文件和配置文件不冲突的所有项
    2. 如果发生了配置冲突,以激活的环境配置文件为准。

3 外部化配置

场景:线上应用如何快速修改配置,并应用最新配置?

  1. SpringBoot使用**配置优先级 + 外部配置**简化配置更新、简化运维
  2. 只需要为jar应用所在的文件夹放一个application.properties最新配置文件,重启项目就能自动应用最新配置

3.1 配置优先级

SpringBoot允许将配置外部化,以便可以在不同的环境中使用相同的应用程序代码。

我们可以使用各种外部配置源,包括Java Properties文件YAML文件环境变量命令行参数

配置可以写到很多位置,常见的优先级顺序:命令行 > 配置文件 > springapplication配置

3.2 外部配置

配置文件优先级如下:(后面覆盖前面)

  1. jar包内的application.properties/yml
  2. jar包内的application-{profile}.properties/yml
  3. jar包外的application.properties/yml
  4. jar包外的application-{profile}.properties/yml

**建议:用一种格式的配置文件。**如果.properties.yml同时存在,则properties优先

包外 > 包内,同级情况:profile配置 > application配置

3.3 最终效果

**最终效果:**优先级由高到低,前面覆盖后面

  1. 命令行 > 包外config直接子目录 > 包外config目录 > 包外根目录 > 包内目录
  2. 同级比较:
    1. profile配置 > 默认配置
    2. properties配置 > yaml配置

4 单元测试

4.1 整合

SpringBoot提供一系列测试工具集及注解方便我们进行测试

spring-boot-test提供核心性能测试能力,spring-boot-test-autoconfigure提供测试的一些自动配置

我们只需要导入spring-boot-starter-test即可整合测试

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

spring-boot-starter-test默认提供了以下库供我们测试使用

  1. JUnit5
  2. Spring Test
  3. AssertJ
  4. Hamcrest
  5. Mockito
  6. JSONassert
  7. JsonPath

4.2 组件测试

直接使用@Autowired容器中的组件进行测试


💎总结

本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!


文章来源:https://blog.csdn.net/weixin_54620350/article/details/135306329
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。