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

简介: 本文主要讲解点:1. 自定义banner2. 配置Tomcat服务器的端口号和路径3. 配置jetty服务器4. 配置文件的优化级
二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。

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

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

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

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

输入 "Two Butterfly" 两个蝴蝶飞 。

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

一.五 添加版本号

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

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

${spring-boot.version}

配置即可。

在这里插入图片描述

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

在这里插入图片描述

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

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

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

默认的名称是 banner.txt 。

在这里插入图片描述

二. 服务器自定义配置

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

server.port 修改端口号

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

二.二 修改成 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>

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

在这里插入图片描述

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

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

三. 配置文件的优先级

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

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

在这里插入图片描述

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)

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

在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述

三.二.一 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

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

在这里插入图片描述

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

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

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

8027 端口号走不通。
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

相关文章
|
23天前
|
Java Spring
SpringBoot入门 - 定制自己的Banner
SpringBoot入门 - 定制自己的Banner
15 2
SpringBoot入门 - 定制自己的Banner
|
1月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
87 1
SpringBoot获取项目文件的绝对路径和相对路径
|
26天前
|
Java Spring
SpringBoot入门(5) - 定制自己的Banner
SpringBoot入门(5) - 定制自己的Banner
11 0
 SpringBoot入门(5) - 定制自己的Banner
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
51 8
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
41 2
|
26天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
36 0
|
5月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
733 1
阿里云服务器开放端口完整图文教程
|
5月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何更改服务器的IP地址或端口号
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
|
5月前
|
网络协议 Linux Unix
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解
146 0
面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解