SpringBoot自定义banner,配置端口号和项目路径(二)

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。

上一章简单介绍了SpringBoot的初入门(一),如果没有看过,请观看上一章

一. 自定义配置 banner 启动图标

老蝴蝶在上一章无论是启动 HelloWorld 项目,还是 MavenHelloWorld,在控制台打印输出时,都会有这么一个启动图标。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

这个就是启动的图标,可以发现,上面显示的是 Spring 。

一般公司开发中,都会自定义这个启动图案,放置公司的logo,或者公司名。

一般个人开发时,会放置自己的相关logo。 我们可以通过在线的网址,进行配置 banner 启动图标。

一.一 项目中resources目录下添加 banner.txt 文件

我们使用 上一章节的 MavenHelloWorld 进行演示。

在MavenHelloWorld 的resources目录下,添加一个 banner.txt 的普通文件。

注意,名称一定要叫 banner.txt

《SpringBoot自定义banner,配置端口号和项目路径(二)》

一.二 搜索在线制定SpringBoot banner 的网址

《SpringBoot自定义banner,配置端口号和项目路径(二)》

推荐使用 https://www.bootschool.net/ascii 网址进行在线制作。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

可以选择自定义文字(中文支持效果不好),也可以选择艺术字和二维码。

老蝴蝶这儿用在线工具栏进行演示。

输入 “Two Butterfly” 两个蝴蝶飞 。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

点击拷贝结果,进行复制。

一.三 将复制结果放置到 resources/banner.txt 文件里面

《SpringBoot自定义banner,配置端口号和项目路径(二)》

一.四 启动 HelloApplication 类,进行验证

《SpringBoot自定义banner,配置端口号和项目路径(二)》

会发现,启动时 banner 发生了改变。

一.五 添加版本号

官方默认的启动时,会添加 SpringBoot 的版本号,方便观察。 目前启动时,没有版本号。

可以在 banner.txt 文件中,添加

${spring-boot.version}

配置即可。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

再次启动时,查看控制台,发现展示了版本号。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

老蝴蝶后面的项目,均带有 banner.txt 的配置文件信息。

一.六 启动图标所在的配置类

启动 banner 的配置,是在 org.springframework.boot.SpringApplicationBannerPrinter 类下面。 在 spring-boot r jar包下面。

默认的名称是 banner.txt 。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

二. 服务器自定义配置

我们在启动项目时,使用的是Tomcat 服务器, 端口号是默认的 8080, path路径是 “”

《SpringBoot自定义banner,配置端口号和项目路径(二)》

我们可以根据项目的需要,进行改变。

二.一 改变Tomcat的服务器的端口号和path路径

二.一.一 在 application.properties 配置文件里面进行配置

《SpringBoot自定义banner,配置端口号和项目路径(二)》

server.port=8027  
server.servlet.context-path=/Lin

server.port 修改端口号

server.servlet.context-path 修改项目名称。

二.一.二 重启项目,查看控制台输出

《SpringBoot自定义banner,配置端口号和项目路径(二)》

可以发现,Tomcat的端口号和地址均发生了改变。

二.一.三 网址url请求验证

输入以前的网址: http://localhost:8080/info , 请求不成功。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

需要改成现在的新网址进行访问, http://localhost:8027/Lin/info

《SpringBoot自定义banner,配置端口号和项目路径(二)》

端口号和项目路径修改成功。

二.二 修改成 Jetty 服务器

二.二.一 移除 tomcat 的依赖

tomcat 的依赖,是在 spring-boot-starter-web 依赖里面,需要从里面排除掉。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--必须移除tomcat依赖-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

二.二.二 添加 jetty依赖

 <!--放置 jetty 依赖,使用jetty服务器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

pom.xml 文件完整的依赖部分

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--必须移除tomcat依赖-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--放置 jetty 依赖,使用jetty服务器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
    </dependencies>

二.二.三 重启项目,进行验证

《SpringBoot自定义banner,配置端口号和项目路径(二)》

使用了 Jetty 的服务器,外部url访问时,也正常。(注意一下,注意一下,替换了服务器,与配置文件无关)

老蝴蝶后面的项目,还是使用 常用的Tomcat 服务器,上面只是演示一下这种用法。

三. 配置文件的优先级

我们通过 SpringBoot的官方网址创建的SpringBoot项目工程,会在 resources/ 目录下,生成一个 application.properties 的配置文件。

其实,官方推荐和实际开发中,常常使用 application.yml 文件进行配置( 关于yml 文件的用法,下一章节老蝴蝶再重点讲解).

《SpringBoot自定义banner,配置端口号和项目路径(二)》

SpringBoot 的配置文件, application.properties / application.yml 除了放置在 resources目录下,也可以放置在其他的目录下。

三.一 SpringBoot的配置文件放置位置和优化级

  • file: ./config/
  • file: ./
  • classpath: ./config/
  • classpath: ./

file: ./config/ 指的是放置在项目根目录下的 config 文件夹里面 (如 application1.properties)

file: ./ 指的是放置在项目根 目录下 里面 (如 application2.properties)

classpath: ./config/ 指的是放置在项目类路径即 resources 目录下的 config 文件夹里面。 (如 application3.properties)

classpath: ./ 指的是放置在项目类路径即 resources 目录下。(如 application4.properties)

(老蝴蝶这儿只是演示一下配置文件的位置层次,这些配置文件并不能真正起作用。)

《SpringBoot自定义banner,配置端口号和项目路径(二)》

这四个优化级也是从高到低排列的, file: ./config/ 的优化级最高, classpath: ./ 的优化级最低。

Springboot项目启动时会按照如下顺序由高到低读取配置,高优先级的属性会覆盖低优先级的属性,属性文件之间存在互补配置的特性。

也就是说,当 file: ./config/ 下的配置文件里面的属性与 classpath: ./的配置文件里面的属性相同时,会直接用 file: ./config/ 下的配置。

可以这么想像一下: springBoot 加载时,会将这四个层级下的配置文件都一起加载了,合并成一个配置文件,如果有相同的配置文件部分,保留优先级最高的。

SpringBoot 给我们放置在 resources 目录下的 application.properties ,优化级是最低的,我们可以根据具体的项目业务逻辑,添加优化级最高的配置信息。

三.二 演示配置文件的优化级和互补特性

只保留 application.properties 配置文件,将 resoruces/config/application3.properties 改成 application.properties 文件。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

三.二.一 config下的application.properties 配置文件添加配置

server.port=8081

这儿只添加 port 端口号配置,意味着 servlet.context-path 采用的是默认的配置。

三.二.二 application.properties 添加配置

server.port=8027
server.servlet.context-path=/Lin

也添加了 port 端口号配置,是 8027. 添加了 servlet.context-path 路径配置,为 /Lin

三.二.三 重启项目,进行验证

《SpringBoot自定义banner,配置端口号和项目路径(二)》

端口号用的是 config/application.properties 下面的 8081.

context path 用的是 application.properties 下面的 /Lin

三.二.四 网络 url 请求验证

8027 端口号走不通。
《SpringBoot自定义banner,配置端口号和项目路径(二)》

8081端口通,但是路径走不通。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

8081/Lin 端口号,项目路径均可以走通。

《SpringBoot自定义banner,配置端口号和项目路径(二)》

本章节的代码放置在 github 上:

https://github.com/yuejianli/springboot/tree/main/MavenHelloWorld

谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!

    原文作者:两个蝴蝶飞
    原文地址: https://blog.csdn.net/yjltx1234csdn/article/details/115567875
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞