Spring boot外部配置(配置中心化)详解

Spring Boot 外部配置(配置中心化)详解

什么是 Spring Boot 外部配置?

Spring Boot 提供了一种在不同环境下轻松配置应用程序的方法。我们可以将配置信息从代码中分离出来,采用外部化配置。该方法所需的参数可以存储在不同的位置中,如属性文件、YAML 文件、环境变量、数据库或远程配置服务器等,从而达到配置中心化的目的。这样做,可以将配置信息和代码分离,方便多环境部署和维护。

Spring Boot 支持的外部配置文件格式

Spring Boot 支持以下外部化属性配置文件:

  1. 属性文件(.properties)
  2. YML 文件(.yml或.yaml)

在默认情况下,Spring Boot 使用 application.properties 文件作为默认的配置文件。如果您同时使用了 application.properties 和 application.yml,则 application.yml 将胜出。

属性文件中的外部化配置

语法

属性文件是键值对的列表。每个键值对都包含一个键和一个值,用等号连接。下面是如何在属性文件中定义外部化配置的语法:

${my.key:default_value}

在以上代码中,${} 语法表示通过外部化值注入属性。冒号 : 表示如果在外部找不到 key,则使用默认值代替。

示例

考虑一个示例,我们将一个名为 my.config 的属性注入到我们的应用程序中。在 application.properties 中添加以下行:

my.config=test

然后,我们在代码中读取这个属性:

@Value("${my.config}")
private String config;

在启动应用程序之后,我们会得到一个名为 config 的 String 类型变量,其值为 "test"。

YML 中的外部化配置

语法

YML 文件使用缩进及冒号来表示层次结构。下面是如何在 YML 文件中定义外部化配置的语法:

my:
  key: default_value

在以上代码中,my 是一个集合,其下面有一个名为 key 的键、值对,其值为 default_value

示例

和之前的示例一样,我们将一个名为 my.config 的属性注入到我们的应用程序中。在 application.yml 中添加以下行:

my:
  config: test

然后,我们在代码中读取这个属性:

@Value("${my.config}")
private String config;

在启动应用程序之后,我们会得到一个名为 config 的 String 类型变量,其值为 "test"。

配置中心化

上面的示例中,我们将配置信息存储在本地属性文件中。但是,如果将配置信息存储在远程配置服务器中会怎样呢?

Spring Cloud Config 提供了这样的功能。使用 Spring Cloud Config,可以将配置信息存储在 Git、Subversion 或 Mercurial 等版本控制系统中。这样做,我们可以对同一应用程序的多个实例进行配置中心化管理。

示范

  1. 在配置中心的 Git 仓库中创建一个名为 my-service.yml 的配置文件。
my:
  config: central
  1. 创建 Spring Boot 项目并添加以下 Maven 依赖项:
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  1. application.properties 中打开 Spring Cloud Config 客户端,并设置配置服务器地址:
spring.cloud.config.uri=http://config-server:8888
  1. 在代码中读取配置文件中的外部化配置:
@Value("${my.config}")
private String config;

在启动应用程序之后,我们会得到一个名为 config 的 String 类型变量,其值为 "central"。

结论

本文介绍了 Spring Boot 外部化属性配置的方法,并使用了属性文件、YAML 文件和配置中心化的示例。通过使用配置中心化,我们可以轻松地在不同的环境中管理应用程序配置。

参考链接

  1. Spring Boot 外部化配置官方文档
  2. Spring Cloud Config 官方文档

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot外部配置(配置中心化)详解 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Tomcat9使用免费的Https证书加密网站的方法

    Tomcat9使用免费的Https证书加密网站的方法 Tomcat9是一款流行的Web应用服务器软件,在进行网站开发时,保障用户数据传输安全是必不可少的,并且在互联网时代中,采用Https协议来保障用户数据传输安全也成为了一种标配。免费的Https证书有Let’s Encrypt和SSL For Free,本文将详细介绍Tomcat9如何使用免费的Https…

    Java 2023年6月2日
    00
  • Java文件快速copy复制实例代码

    下面是关于Java文件快速copy复制的攻略: 1. 环境准备 在进行Java文件快速copy复制之前,我们需要准备好相应的环境,包括Java开发工具、Java文件读写等。 安装Java开发工具:Eclipse、IDEA、NetBeans等,选择一款自己熟悉的Java开发工具即可。 引入Apache Commons IO包:可以通过项目管理工具Maven、G…

    Java 2023年5月20日
    00
  • 【深度思考】聊聊JDK动态代理原理

    1. 示例 首先,定义一个接口: public interface Staff { void work(); } 然后,新增一个类并实现上面的接口: public class Coder implements Staff { @Override public void work() { System.out.println(“认真写bug……”); } } …

    Java 2023年4月17日
    00
  • Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

    Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码 Java 11于2018年9月正式发布,带来了一些令人兴奋的新特性和功能。在本文中,我们将介绍Java 11的八个强大的新特性,并给出一些示例,以帮助您更好地理解它们的使用方式。 1. HttpClient API Java 11引入了一个全新的HTTP客户端API,该API支持异步和基于事…

    Java 2023年5月20日
    00
  • SpringMVC的简单传值(实现代码)

    下面是关于“SpringMVC的简单传值(实现代码)”的攻略,包含了示例说明。 一、简介 SpringMVC是一种基于MVC(Model-View-Controller)的Web框架,我们可以使用它来开发Java Web应用程序。SpringMVC有很多特性,其中之一就是通过控制器将数据从视图传递到模型,从而实现传值的功能。 在SpringMVC中,我们可以…

    Java 2023年6月15日
    00
  • Java的JSON格式转换库GSON的初步使用笔记

    下面对“Java的JSON格式转换库GSON的初步使用笔记”进行详细讲解。 GSON简介 GSON是谷歌开源的一款Java语言的JSON格式转换库。它能够将Java对象序列化为JSON格式的字符串,同时也能够将JSON格式的字符串反序列化为Java对象。GSON使用简单、高效、安全,广泛应用于Java开发中。 GSON的基本使用 在使用GSON之前,需要先引…

    Java 2023年5月26日
    00
  • Java的线程与进程以及线程的四种创建方式

    Java线程与进程 Java是一门支持多线程的编程语言,线程和进程是Java中常见的程序执行方式。 进程 进程是操作系统分配资源的基本单位,每一个进程都有自己独立的内存空间和系统资源。每当一个程序启动时,操作系统就会为该程序创建一个进程。 Java程序的主函数(main)就是一个进程。当main函数被调用时,操作系统为该程序分配一段内存,这段内存称为进程。J…

    Java 2023年5月19日
    00
  • 浅谈springBean的作用域

    什么是Spring Bean作用域 Spring中的Bean作用域就是指一个Bean在Spring容器中的生命周期,Bean的作用域有很多种,常见的有单例(Singleton)、原型(Prototype)、会话(Session)和请求(Request)等。 Spring Bean作用域分类 Spring Bean作用域主要分为以下几类: Singleton(…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部