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

yizhihongxing

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日

相关文章

  • 一篇文章带你了解C++语法基础–字符串

    一篇文章带你了解C++语法基础——字符串 1、字符串的定义与声明 字符串是一种字符数组,存储在 char 类型数组中。在 C++ 语言中,字符串可以通过以下两种方式进行定义: 字符数组定义,例如: char str[] = "Hello World"; 该定义方式定义了一个长度为12(第13个字符是 \0)的字符数组,并将字符串 “Hel…

    other 2023年6月20日
    00
  • Vue实现记住账号密码功能的操作过程

    下面是Vue实现记住账号密码功能的操作过程: 1. 本地存储 要实现记住账号密码功能,我们需要在客户端上保存用户输入的账号密码信息。对于前端开发而言,最常用的本地存储方式就是localStorage。localStorage是HTML5标准中新加入的一个W3C Web Storage API,主要用于浏览器本地离线存储一些键值对数据,用来存储一些长期的持久性…

    other 2023年6月27日
    00
  • 详解Android如何实现自定义的动画曲线

    详解Android如何实现自定义的动画曲线 在Android中,我们可以通过Animator来创建动画效果,但是Animator默认提供的动画曲线可能无法满足我们的需求。这时候,我们可以通过自定义动画曲线来实现符合自己需求的动画效果。 自定义动画插值器 自定义动画插值器需要实现TimeInterpolator接口,并且重写getInterpolation(f…

    other 2023年6月25日
    00
  • Win10创造者更新预览版15014怎么自定位桌面图标自定义位置?

    Win10创造者更新预览版15014中,可以自定义桌面图标的位置。下面我将为大家详细讲解这一过程。 1. 确定图标排列方式 在自定义桌面图标位置之前,我们首先需要确定图标的排列方式。Win10创造者更新预览版15014中,提供了两种排列方式: 在网格中排列 – 默认情况下,在桌面上新建一个文件夹,文件夹内的图标会按照网格排列方式布局。 自由排列 – 在桌面上…

    other 2023年6月25日
    00
  • Windows 2016 服务器安全设置

    Windows Server 2016 服务器安全设置攻略 1. 安装更新补丁 要保证服务器的安全性,首先需要安装最新的更新补丁。Windows Server 2016 支持自动更新,也可以手动安装。 自动更新 在“服务”中可查看自动更新相关服务是否启用,确保自动更新功能正常工作。如果需要手动开启自动更新服务,可按照以下步骤进行操作: 点击 “开始” 菜单,…

    other 2023年6月27日
    00
  • jquery ajax修改全局变量示例代码

    jQuery Ajax 修改全局变量示例代码攻略 在这个攻略中,我们将使用jQuery Ajax来修改全局变量的示例代码。jQuery Ajax是一个强大的工具,可以通过异步请求从服务器获取数据,并在页面上进行操作。我们将使用它来修改全局变量的值。 步骤1:创建全局变量 首先,我们需要创建一个全局变量,以便在整个页面中访问和修改它。在JavaScript中,…

    other 2023年7月29日
    00
  • 详解为什么指针被誉为C语言灵魂

    详解为什么指针被誉为C语言灵魂 指针是C语言中一个非常重要的概念,被广泛认为是C语言的灵魂。它提供了一种强大的机制,使得程序能够直接访问和操作内存中的数据。本文将详细讲解为什么指针如此重要,并提供两个示例来说明其用途。 1. 内存访问和操作 指针允许程序直接访问和操作内存中的数据,这是C语言的一大特点。通过指针,我们可以获取变量的地址,并通过地址来读取或修改…

    other 2023年8月2日
    00
  • Android中使用ListView实现漂亮的表格效果

    Android中使用ListView实现漂亮的表格效果攻略 在Android中,可以使用ListView来实现漂亮的表格效果。下面是一个完整的攻略,包含了两个示例说明。 步骤一:准备工作 首先,在你的Android项目中添加ListView控件。你可以在XML布局文件中添加以下代码: <ListView android:id=\"@+id/l…

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