如何在Spring Boot中使用配置文件


Spring Boot正以前所未有的方式获得普及,而且我知道在未来几个月中它将持续存在。每种技术都有一些功能,在企业应用程序中非常有用。在本文中,我们将特别讨论一个功能:配置文件。

什么是个人资料? 每个企业应用程序都有许多环境,例如:

Dev | Test | Stage | Prod | UAT / Pre-Prod

每个环境都需要特定于它们的设置。例如,在DEV中,我们不需要不断检查数据库的一致性。在测试和阶段,我们需要这样做。这些环境托管称为配置文件的特定配置。

我们如何维护个人资料? 这很简单-属性文件! 我们为每种环境制作属性文件,并在应用程序中相应地设置配置文件,因此它将选择各自的属性文件。不用担心,我们将了解如何进行设置。

本文将演示如何为您的Spring Boot应用程序设置Profiles。

让我们从Spring Starter设置Spring Boot应用程序开始 。

8.png

接下来,我们需要将项目作为Maven项目导入STS。以下是项目结构: 7.png

在这个演示应用程序中,我们将看到如何在运行时根据特定环境通过各自的配置文件配置不同的数据库。

由于最好将数据库连接保留在属性文件中,因此它仍在应用程序外部,可以更改。我们将在这里进行。但是,默认情况下,Spring Boot仅提供一个属性文件( application.properties)。那么,我们如何根据环境隔离属性?

解决方案是创建更多属性文件,并将“配置文件”名称添加为后缀,并配置Spring Boot以根据配置文件选择适当的属性。

然后,我们需要创建三个 application.properties

  1. application-dev.properties
  2. application-test.properties
  3. application-prod.properties

当然, application.properties 它将保留为主属性文件,但是如果我们覆盖特定于配置文件的文件中的任何键,则后者将获得优先权。

现在,我将在相应的属性文件中定义数据库配置属性,并在其中添加代码 DBConfiguration.class 以选择适当的设置。

这是基础 application.properties:

6.png

在DEV中,我们将使用内存数据库:

5.png

在TEST中,我们将使用RDS MySQL数据库的较低实例,而在PROD中,我们将使用MySQL数据库的较高实例。(重要的是价格...)

4.png

3.png 现在,我们完成了属性文件。让我们在中DBConfiguration.class 进行配置 以选择正确的一个。

2.png 屏幕截图2018-09-02 at 8.48.41 AM.png

我们已经使用 @Profile("Dev") 来让系统知道这是 BEAN 我们将应用程序配置文件设置为DEV时应该选择的。完全不会创建其他两个bean。

最后一个设置是如何让系统知道这是DEV,TEST还是PROD。但是,我们该怎么做呢?

我们将使用 application.properties 来使用以下密钥:

spring.profiles.active=dev

从这里,Spring Boot将知道选择哪个配置文件。让我们现在运行该应用程序!

在配置文件处于DEV模式的情况下,它应该选择H2 DB。

屏幕截图2018-09-02 at 9.07.25 AM

现在,将配置文件更改为PROD。我们将看到My​​SQL具有针对数据库的High Config。应该选择它,并且该消息将被PROD消息覆盖。

1.png 屏幕截图2018-09-02 at 9.09.29 AM屏幕截图2018-09-02 at 9.09.44 AM

而已!我们只需要在处对其进行一次更改 application.properties 即可让Spring Boot知道代码部署在哪个环境中,它将对设置产生神奇的效果。


原文链接:https://blog.csdn.net/Beibnjin/article/details/113827586?utm_medium=distribute.pc_category.none-task-blog-hot-1.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-1.nonecase&request_id=