- Spring Boot 教程
- Spring Boot - 首页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean & 依赖注入
- Spring Boot - 运行器
- Spring Boot - 启动器
- Spring Boot - 应用属性
- Spring Boot - 配置
- Spring Boot - 注解
- Spring Boot - 日志
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest 模板
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 消费 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot - Eureka 服务器
- 使用 Eureka 注册服务
- 网关代理服务器和路由
- Spring Cloud 配置服务器
- Spring Cloud 配置客户端
- Spring Boot - 执行器
- Spring Boot - Admin 服务器
- Spring Boot - Admin 客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 创建 Docker 镜像
- 跟踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送电子邮件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批处理服务
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- Rest 控制器单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用资源
- Spring Boot - 讨论
Spring Boot - 应用属性
应用属性支持我们在不同的环境中工作。在本章中,您将学习如何为 Spring Boot 应用程序配置和指定属性。
命令行属性
Spring Boot 应用程序将命令行属性转换为 Spring Boot 环境属性。命令行属性优先于其他属性源。默认情况下,Spring Boot 使用 8080 端口号启动 Tomcat。让我们学习如何使用命令行属性更改端口号。
步骤 1 - 创建可执行 JAR 文件后,使用命令java –jar <JARFILE>运行它。
步骤 2 - 使用下面截图中给出的命令,通过使用命令行属性更改 Spring Boot 应用程序的端口号。
注意 - 您可以使用分隔符 - 提供多个应用程序属性。
属性文件
属性文件用于在一个文件中保存“N”个属性,以便在不同的环境中运行应用程序。在 Spring Boot 中,属性保存在类路径下的application.properties文件中。
application.properties 文件位于src/main/resources目录中。下面给出了示例application.properties文件的代码 -
server.port = 9090 spring.application.name = demoservice
请注意,在上图所示的代码中,Spring Boot 应用程序 demoservice 从端口 9090 开始。
YAML 文件
Spring Boot 支持基于 YAML 的属性配置来运行应用程序。我们可以使用application.yml文件代替application.properties文件。此 YAML 文件也应该保存在类路径中。下面给出了示例application.yml文件 -
spring: application: name: demoservice server: port: 9090
外部化属性
我们可以将属性保存在不同的位置或路径中,而不是将属性文件保存在类路径下。在运行 JAR 文件时,我们可以指定属性文件路径。您可以使用以下命令在运行 JAR 时指定属性文件的位置 -
-Dspring.config.location = C:\application.properties
使用 @Value 注解
@Value 注解用于在 Java 代码中读取环境或应用程序属性值。读取属性值的语法如下所示 -
@Value("${property_key_name}")
请查看以下示例,该示例显示了如何在 Java 变量中使用 @Value 注解读取spring.application.name属性值。
@Value("${spring.application.name}")
观察下面给出的代码以更好地理解 -
import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DemoApplication { @Value("${spring.application.name}") private String name; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping(value = "/") public String name() { return name; } }
注意 - 如果在运行应用程序时找不到该属性,Spring Boot 会抛出 Illegal Argument 异常,如Could not resolve placeholder 'spring.application.name' in value "${spring.application.name}"。
为了解决占位符问题,我们可以使用下面给出的语法设置属性的默认值 -
@Value("${property_key_name:default_value}") @Value("${spring.application.name:demoservice}")
Spring Boot 活动配置文件
Spring Boot 支持基于 Spring 活动配置文件的不同属性。例如,我们可以为开发和生产保留两个单独的文件来运行 Spring Boot 应用程序。
Spring 活动配置文件在 application.properties 中
让我们了解如何在 application.properties 中使用 Spring 活动配置文件。默认情况下,application.properties 将用于运行 Spring Boot 应用程序。如果您想使用基于配置文件的属性,我们可以为每个配置文件保留单独的属性文件,如下所示 -
application.properties
server.port = 8080 spring.application.name = demoservice
application-dev.properties
server.port = 9090 spring.application.name = demoservice
application-prod.properties
server.port = 4431 spring.application.name = demoservice
在运行 JAR 文件时,我们需要根据每个属性文件指定 Spring 活动配置文件。默认情况下,Spring Boot 应用程序使用 application.properties 文件。设置 Spring 活动配置文件的命令如下所示 -
您可以在控制台日志中看到活动配置文件名称,如下所示 -
2024-09-04 08:13:16.322 INFO 14028 --- [ main] com.tutorialspoint.demo.DemoApplication : The following profiles are active: dev
现在,Tomcat 已在端口 9090 (http) 上启动,如下所示 -
2024-09-04 08:13:20.185 INFO 14028 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9090 (http)
您可以设置 Production 活动配置文件,如下所示 -
您可以在控制台日志中看到活动配置文件名称,如下所示 -
2024-09-04 08:13:16.322 INFO 14028 --- [ main] com.tutorialspoint.demo.DemoApplication : The following profiles are active: prod
现在,Tomcat 在端口 4431 (http) 上启动,如下所示 -
2024-09-04 08:13:20.185 INFO 14028 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 4431 (http)
Spring 活动配置文件用于 application.yml
让我们了解如何在 application.yml 中保留 Spring 活动配置文件。我们可以将 Spring 活动配置文件属性保存在单个application.yml文件中。无需像 application.properties 一样使用单独的文件。
以下是如何在 application.yml 文件中保留 Spring 活动配置文件的示例代码。请注意,分隔符 (---) 用于分隔 application.yml 文件中的每个配置文件。
spring: application: name: demoservice server: port: 8080 --- spring: profiles: dev application: name: demoservice server: port: 9090 --- spring: profiles: prod application: name: demoservice server: port: 4431
设置开发活动配置文件的命令如下所示 -
您可以在控制台日志中看到活动配置文件名称,如下所示 -
2024-09-04 08:41:37.202 INFO 14104 --- [ main] com.tutorialspoint.demo.DemoApplication : The following profiles are active: dev
现在,Tomcat 在端口 9090 (http) 上启动,如下所示 -
2024-09-04 08:41:46.650 INFO 14104 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9090 (http)
设置 Production 活动配置文件的命令如下所示 -
您可以在控制台日志中看到活动配置文件名称,如下所示 -
2024-09-04 08:43:10.743 INFO 13400 --- [ main] com.tutorialspoint.demo.DemoApplication : The following profiles are active: prod
这将使 Tomcat 在端口 4431 (http) 上启动,如下所示
2024-09-04 08:43:14.473 INFO 13400 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 4431 (http)