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

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

相关文章
|
4月前
|
Java Spring
Spring Boot配置的优先级?
在Spring Boot项目中,配置可通过配置文件和外部配置实现。支持的配置文件包括application.properties、application.yml和application.yaml,优先级依次降低。外部配置常用方式有Java系统属性(如-Dserver.port=9001)和命令行参数(如--server.port=10010),其中命令行参数优先级高于系统属性。整体优先级顺序为:命令行参数 &gt; Java系统属性 &gt; application.properties &gt; application.yml &gt; application.yaml。
857 0
|
1月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
230 3
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
474 5
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
158 0
探索Spring Boot的@Conditional注解的上下文配置
|
3月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
913 10
|
4月前
|
弹性计算 网络协议 安全
【转】如何配置服务器的端口映射?
本文详解端口映射原理及配置方法,涵盖家庭、企业与云环境,包含静态、动态与双向映射类型,并提供常见问题解决方案。
1249 6
|
4月前
|
人工智能 安全 Java
Spring Boot yml 配置敏感信息加密
本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。
1045 1
|
6月前
|
Java 应用服务中间件
多项目分接口:在同一Tomcat下使用不同的端口号访问不同的项目。
总而言之,要在同一Tomcat服务器下使用不同端口访问不同项目,关键是通过对server.xml文件的配置创建多个 `<Service>`实例和相应的虚拟主机。这种方法既实现了项目隔离,也有助于优化资源利用率。通过遵循本文的详细说明,很容易地就能满足需求实现多项目分接口。
228 38
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
680 0
传统maven项目和现在spring boot项目的区别
|
XML Java 数据库连接
创建springboot项目的基本流程——以宠物类别为例
创建springboot项目的基本流程——以宠物类别为例
226 0
创建springboot项目的基本流程——以宠物类别为例