SpringBoot

第一章 SpringBoot基础

2021-11-05  本文已影响0人  liaijuyyer

一 自定义banner

所谓SpringBoot Banner 其实就是SpringBoot应用启动时 在控制台上打印的SpringBoot的图标 如下图所示

这个banner是可以支持自定义的, 官网自定义banner教程 简单来说就是在项目的classpath下加一个名为banner.txt的文件 或者也可以通过设置spring.banner.location属性来修改banner.txt文件的位置 banner.txt里放banner的文案即可

banner.txt
在线SpringBoot banner生成

二 SPI

SPI 全称为(Service Provider Interface) 是JDK内置的一种服务提供发现机制,SPI是一种动态替换发现的机制。比如有个接口 想运行时动态的给它添加实现。你只需要自己实现这个接口即可。比如java.sql.Driver接口 其他不同厂商可以针对同一接口做出不同的实现 而java SPI机制则可以为某个接口寻找服务的实现

Java SPI就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是解耦

SPI使用场景
概括地说,适用于:调用者根据实际使用需要,启用、扩展、或者替换框架的实现策略 比较常见的例子:

JAVA SPI使用介绍
要使用Java SPI,需要遵循如下约定:

JAVA SPI 示例

    public interface IShout {
        void shout();
    }
    public class Cat implements IShout {
        @Override
        public void shout() {
            System.out.println("miao miao");
        }
    }
    public class Dog implements IShout {
        @Override
        public void shout() {
            System.out.println("wang wang");
        }
    }

文件位置如下:

- src
    -main
        -resources
            - META-INF
                - services
                    - org.foo.demo.IShout

文件内容

org.foo.demo.animal.Dog
org.foo.demo.animal.Cat
public class SPIMain {
    public static void main(String[] args) {
        ServiceLoader<IShout> shouts = ServiceLoader.load(IShout.class);
        for (IShout s : shouts) {
            s.shout();
        }
    }
}
//执行结果会输出两个实现
wang wang
miao miao

三 SpringBoot 外部配置文件优先级

SpringBoot外部配置文件的优先级 官网链接

下面的配置实测建议将springboot项目打成jar包后 测试 直接在idea中测试 ./xx的配置并没有生效

实测

四 SpringBoot 配置优先级

刚刚第三节是SpringBoot外部配置文件的优先级 但是除了外部配置文件外还有很多种方式可以对SpringBoot进行配置 具体配置的优先级如下 注意test的配置只有在跑单元测试的是 才能够覆盖应用本来的配置 官网配置说明

五 SpringBoot Profile配置

SpringBoot Profile 与 Spring Profile是一个东西 就是Spring的多环境配置 详见下图 这里不再多说 激活profile配置可以在application.properties文件中增加如下配置

#激活多个环境用,隔开
spring.profiles.active=dev,hsqldb

六 SpringBoot 热部署

SpringBoot项目 实现热部署有两种方式

上一篇 下一篇

猜你喜欢

热点阅读