Spring Boot 把配置文件和日志文件放到jar外部

Step 1:创建Spring Boot项目

首先,我们创建一个Spring Boot项目。可以使用Spring Intializr或者自行使用maven创建。这里我们使用Spring Intializr,选择下面的选项:

  • 项目名称:spring-boot-external-config-logs
  • 项目类型:Maven Project
  • 依赖:Spring Boot DevTools、Spring Web、Spring Boot Configuration Processor

其中,Spring Boot DevTools是可选的,但是它可以在应用程序重新启动时加快开发人员的反应时间。

完成后,下载项目并导入IDE。

Step 2:添加application.properties文件

Spring Boot可以从多个地方加载配置文件。其中之一是在项目根目录下的application.properties文件。

现在,我们需要在项目中添加一个application.properties文件,并从其中读取配置。

首先,在src/main/resources目录下创建一个新文件夹config。在config文件夹中,创建一个application.properties文件,添加以下内容:

logging.file.name=logs/app.log

这将配置Spring Boot将日志文件写入到“logs/app.log”文件中,而不是默认情况下将日志文件写入到控制台。请注意,创建logs目录是必需的。

然后,在项目中创建一个名为HelloController的简单控制器来检索配置。这里是代码:

@RestController
public class HelloController {

    @Value("${logging.file.name}")
    private String logFileName;

    @GetMapping("/logFileName")
    public String getLogFileName() {
        return logFileName;
    }
}

上面的代码中@Value("${logging.file.name}")注释将logFileName字段从application.properties文件中注入为Spring Bean。

Step 3:外部化配置文件

现在,我们将演示如何将配置文件放到jar文件之外并从外部读取。这是一个两步过程。

第一步,将application.properties文件放到jar文件之外。

  • 在项目的根目录中,创建一个文件夹config,并将application.properties文件移至该文件夹中。
  • 在项目的根目录中,创建一个文件夹logs,并使用之前在application.properties文件中配置的文件名作为文件名,例如logs/app.log。

现在,我们已经将配置和日志文件从jar文件中拆分出来了。

第二步,加载外部配置文件。

这可以通过将以下内容添加到启动命令中来实现:

java -jar spring-boot-external-config-logs.jar --spring.config.location=file:/path/to/config/

其中,/path/to/config/是application.properties文件所在的文件夹的绝对路径。

第三步,在HelloController类中添加一个新的URI来读取从命令行传递的配置。

@RestController
public class HelloController {

    @Value("${logging.file.name}")
    private String logFileName;

    @Value("${external.config.path}")
    private String externalConfig;

    @GetMapping("/logFileName")
    public String getLogFileName() {
        return logFileName;
    }

    @GetMapping("/externalConfigPath")
    public String getExternalConfigPath() {
        return externalConfig;
    }
}

然后我们访问外部配置文件:

http://localhost:8080/externalConfigPath

结果应该是:file:/path/to/config/

这表明外部配置文件已经正确加载。

示例1:

  • 可以假设有这样的一个Spring Boot项目:

xml
<groupId>com.spring.boot</groupId>
<artifactId>spring-boot-demo</artifactId>
<version>1.0-SNAPSHOT</version>

  • 可以在项目根目录下创建一个“config”目录,并在该目录下创建“application.properties”文件,并添加以下内容:

xml
server.port=8081

  • 可以使用以下命令启动Spring Boot应用:

java
java -jar target/spring-boot-demo-1.0-SNAPSHOT.jar --spring.config.location="file:./config/application.properties"

在启动后,Spring Boot应用将使用指定的端口(即“8081”)启动。

示例2:

  • 可以假设有这样的一个Spring Boot项目:

xml
<groupId>com.spring.boot</groupId>
<artifactId>spring-boot-demo</artifactId>
<version>1.0-SNAPSHOT</version>

  • 可以在项目根目录下创建一个“config”目录,并在该目录下创建“logback.xml”文件,并添加以下内容:

```xml



logs/info.log
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{15} - %msg%n








```

  • 然后,可以使用以下命令启动Spring Boot应用程序:

java
java -Dlogging.config="file:./config/logback.xml" -jar target/spring-boot-demo-1.0-SNAPSHOT.jar

在启动后,Spring Boot应用程序将使用指定的日志配置。例如,在这种情况下,Spring Boot应用程序将向“logs/info.log”文件写入日志。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 把配置文件和日志文件放到jar外部 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • windows安装并配置nginx

    以下是“Windows安装并配置Nginx”的完整攻略: 1. Nginx概述 Nginx是一款高性能的Web服务器和反向代理服务器,可以处理高并发的请求。Nginx支持多种协议,包括HTTPHTTPSSMTP、POP3和IMAP等。Nginx还可以作为负载均衡器和缓存服务器使用。 2. 安装Nginx Windows系统中,我们可以使用以下步骤安装Ngin…

    other 2023年5月8日
    00
  • 提取和转换XVX视频格式的小技巧

    提取和转换XVX视频格式的小技巧攻略 简介 XVX视频格式是一种较为特殊的视频格式,常见于某些特定的设备或应用程序中。本攻略将介绍如何提取和转换XVX视频格式的方法,以便在其他设备或应用程序中使用。 步骤 步骤一:提取XVX视频文件 首先,确保你已经获得了XVX视频文件。如果你还没有该文件,可以从设备或应用程序中导出或下载。 打开一个视频编辑软件,例如Ado…

    other 2023年8月5日
    00
  • 微信小程序报错:does not have a method “xxxx” to handle event “tap”的解决方案

    针对“微信小程序报错:does not have a method “xxxx” to handle event “tap””这一问题,一般而言有以下两种可能的原因和解决方案: 原因一:方法名或事件名拼写错误 可能情景:在小程序中,有一个按钮组件,其中的tap事件名称被错误地输入成了一个不存在的方法名。此时,当我们运行该事件时,小程序将无法使用正确的方法名进…

    other 2023年6月26日
    00
  • C语言全面细致精讲操作符的使用

    C语言全面细致精讲操作符的使用 操作符的基本介绍 在C语言中有非常多的操作符,用于实现变量之间的相互赋值、比较、计算等操作。操作符是C语言中非常重要的一部分,并且涉及到了C语言的基础知识。操作符可以分为以下几类: 算数操作符 关系操作符 逻辑操作符 位操作符 赋值操作符 其他操作符 其中,算数操作符用于执行基本的算术运算,比如加、减、乘、除等;关系操作符用于…

    other 2023年6月27日
    00
  • Java实现带头结点的单链表

    下面我会详细讲解Java实现带头结点的单链表的完整攻略。整个过程分为以下几个步骤: 1. 定义单链表节点类 首先,我们需要定义一个节点类来表示单链表的节点。节点类需要包含以下两个属性: 数据域:用来存储节点中的数据。 指针域:指向下一个节点的指针。 以下是节点类的定义示例: public class ListNode { int val; ListNode …

    other 2023年6月27日
    00
  • MySQL使用正则表达式去检索指定数据库字段

    MySQL使用正则表达式(Regular Expression)可以实现非常强大的字符串匹配功能。以下是MySQL使用正则表达式去检索指定数据库字段的完整攻略: 1. 创建正则表达式 在MySQL中,正则表达式可以使用REGEXP操作符或RLIKE操作符来匹配字符串。REGEXP相对更通用一些。要使用REGEXP操作符或RLIKE操作符,需要先创建一个正则表…

    other 2023年6月25日
    00
  • Android 实现当下最流行的吸顶效果

    为了实现 Android 中的吸顶效果,我们可以采用以下步骤: 1.创建列表布局并添加一个头部布局在创建列表布局时,需要添加一个头部布局并设置与列表布局同样的宽度和高度,同时需要设置头部布局的位置,默认为隐藏。 示例1: <RelativeLayout android:layout_width="match_parent" andr…

    other 2023年6月27日
    00
  • Creo直线怎么变成构造线? Creo中构造线的制作方法

    Creo直线变成构造线的方法 在Creo中,将直线转换为构造线是一种常见的操作。构造线是一种特殊类型的几何元素,用于辅助设计和约束模型。下面是将直线转换为构造线的详细步骤: 首先,打开Creo软件并加载您的模型。 选择直线:使用选择工具(通常是箭头图标),单击并选择您想要转换为构造线的直线。您可以使用鼠标拖动来选择直线。 右键单击选择的直线:在选择直线后,右…

    other 2023年8月6日
    00
合作推广
合作推广
分享本页
返回顶部