S
S
Spring 实战(第五版)
搜索文档…
S
S
Spring 实战(第五版)
Spring 实战(第 5 版)
第一部分 Spring 基础
第 1 章 Spring 入门
第 2 章 开发 Web 应用程序
第 3 章 处理数据
第 4 章 Spring 安全
第 5 章 使用配置属性
5.1 微调自动配置
5.1.1 理解 Spring 环境抽象
5.1.2 配置数据源
5.1.3 配置嵌入式服务器
5.1.4 配置日志
5.1.5 使用特殊的属性值
5.2 创建自己的配置属性
5.3 使用 profile 文件进行配置
5.4 小结
第二部分 集成 Spring
第 6 章 创建 REST 服务
第 7 章 调用 REST 服务
第 8 章 发送异步消息
第 9 章 集成 Spring
第三部分 响应式 Spring
第 10 章 Reactor 介绍
第 11 章 开发响应式 API
第 12 章 响应式持久化数据
第四部分 云原生 Spring
第 13 章 服务发现
第 14 章 配置管理
第 15 章 处理失败和时延
第五部分 部署Spring
第 16 章 使用 SpringBoot Actuator
第 17 章 管理 Spring
第 18 章 使用 JMX 监控 Spring
第 19 章 部署 Spring
由
GitBook
提供支持
5.1.1 理解 Spring 环境抽象
Spring 环境抽象是任何可配置属性的一站式商店。它抽象了属性的起源,以便需要这些属性的 bean 可以从 Spring 本身使用它们。Spring 环境来自几个属性源,包括:
JVM 系统属性
操作系统环境变量
命令行参数
应用程序属性配置文件
然后,它将这些属性聚合到单一的源中,从这个源中可以注入 Spring bean。图 5.1 演示了来自属性源的属性是如何通过 Spring 环境抽象流到 Spring bean 中的。
图 5.1 Spring 环境从属性源获取属性,并使它们能够在应用程序上下文中的 bean 获取
通过 Spring Boot 自动配置的 bean 都可以通过从 Spring 环境中提取的属性进行配置。作为一个简单的例子,假设希望应用程序的底层 servlet 容器侦听某些端口上的请求,而不是默认端口 8080。为此,通过在 src/main/resources/application.properties 文件中的 server.port 属性来指定一个不同的接口,如下所示:
server.port=9090
就我个人而言,我更喜欢在设置配置属性时使用 YAML。因此,我可能设置在 /src/main/resources/application.yml 文件中的 server.port 的值,而不是使用 application.properties 文件,如下所示:
server
:
port
:
9090
如果希望在外部配置该属性,还可以在启动应用程序时使用命令行参数指定端口:
$ java -jar tacocloud-0.0.5-SNAPSHOT.jar --server.port
=
9090
如果想让应用程序总是在一个特定的端口上启动,可以把它设置为一个操作系统环境变量:
$
export
SERVER_PORT
=
9090
注意,在将属性设置为环境变量时,命名风格略有不同,以适应操作系统对环境变量名称的限制。Spring 能够将其分类并将 SERVER_PORT 转译为 server.port。
正如我所说的,有几种设置配置属性的方法。当我们讲到第 14 章的时候,你会看到在一个集中的配置服务器中设置配置属性的另一种方法。实际上,可以使用几百个配置属性来调整 Spring bean 的行为。你已经看到了一些:本章中的 server.port 和前一章的 security.user.name 和 security.user.password。
在本章中不可能测试所有可用的配置属性。尽管如此,让我们来看看一些可能经常遇到的最有用的配置属性。我们将从几个属性开始,这些属性允许你调整自动配置的数据源。
以前
5.1 微调自动配置
下一个
5.1.2 配置数据源
最近更新
2yr ago
复制链接