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
```
- 然后,可以使用以下命令启动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技术站