# 14.4.1 服务特定应用程序的属性

正如我们所讨论的，使用 Config Server 的好处之一，是您能够跨应用程序，为所有微服务提供共享的公共配置。尽管如此，通常也存在一些服务所特有的属性，是不需要（或不应该）在所有服务中共享的。

除了共享配置之外，Config Server 还能够管理针对特定应用程序的配置。诀窍是将配置文件的名称，与应用程序的 `spring.application.name` 属性，配置成一样的值。

在上一章中，您使用 `spring.application.name` 属性配置了微服务名称，用于在 Eureka 中注册。同样，这个属性在客户端访问 Config Server 时，也用于标识自己，以便 Config Server 可以提供特定于该应用程序的配置。

例如，在 Taco Cloud 应用程序中，您将应用程序拆分成一些微服务，比如 ingredient-service，order-service，taco-service， 和 user-service，您应该在每个服务中通过设置 `spring.application.name` 属性，指定这些服务的名称。然后就可以在 Config Server 的后端 Git 存储库上分别创建 YAML 配置文件。如：ingredient-service.yml, order-service.yml, taco-service.yml, and user-service.yml。下面的图 14.3 展示了 Gogs web 应用程序的配置库。

![](https://867170852-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LrmLE3NwQoVJk02Q_BX%2F-MgLmZxvDFP4fFbv9ju4%2F-MgLnuvYHoWckdqGwaoK%2F14.3.png?alt=media\&token=f5b9e927-f9d9-4fa7-a2f4-92bd42e25b34)

无论应用程序的名称是什么，所有应用程序都将接收来自 `application.yml` 文件的配置。但每个应用程序的 `spring.application.name` 属性设置的名称，将在请求 Config Server 时发送出去（作为请求路径的一部分）。如果有匹配的配置文件，那这些配置也将被返回。如果同样的属性在 `application.yml` 中，以及特定于应用程序的配置文件中，被重复定义了，那么特定于应用程序的配置中的属性将优先。

值得注意的是，尽管图 14.3 显示了 YAML 配置文件，但是如果将 properties 文件存入 Git 存储库，则也同样适用。
