1.4. 在 Spring Boot 应用程序中使用无注解配置

通过从 application.propertiesapplication.yml 文件提取配置属性,使用 Dekorate 为 Spring Boot application 项目生成 OpenShift 资源配置文件。这个方法不需要您注解应用程序源,因为 Dekorate 可以从 Spring Boot 和属性文件中的配置参数获取所需的元数据。Annontationless configuration 是 Spring Boot 和 Dekorate 之间的丰富框架集成的功能。

先决条件

  • 基于 Maven 的应用项目配置为使用 Spring Boot 和 Dekorate
  • 应用项目中至少有一个类标注为 @SpringBootApplication 注释。
  • Java JDK 8 或 JDK 11 已安装。
  • 已安装 Maven。

流程

  1. 在应用程序的 pom.xml 文件中添加以下依赖项:

    <project>
      ...
      <dependencies>
        ...
        <!-- The OpenShift Spring Starter automatically adds "io.dekorate:openshift-annotations" as a transitive dependency -->
        <dependency>
          <groupId>io.dekorate</groupId>
          <artifactId>openshfit-spring-starter</artifactId>
          <version>${dekorate.version}</version>
        </dependency>
        ...
      </dependencies>
    ...
    <project>
  2. 将 Dekorate 配置属性添加到项目中的 application.propertiesapplication.yml 文件中。您不必在源文件中添加任何 Dekorate 属性注解。请注意,您仍然可以在源文件中使用注解,但如果您这样做,Dekorate 使用 application.propertiesapplication.yml 文件中提供的参数覆盖注解中提供的参数。
  3. 打包应用程序:

    mvn clean package

    在构建应用程序 Dekorate 时,会在应用程序项目中的以下资源中解析配置。配置资源会按照增加的优先级顺序解析。这意味着,如果同一配置参数有 2 个不同资源的不同值,则 Dekorate 会使用优先级列表上从较高资源获取的值。例如,如果源中的注解指定了参数值,但为 application.yml 中的同一参数指定一个不同的值,Dekorate 会使用它从 application.yml 获取的值。Dekorate 按照以下优先级顺序解析您的项目资源:

    1. 注解
    2. application.properties
    3. application.yaml
    4. application.yml
  4. 导航到 target/classes/META-INF/dekorate 目录,其中包含生成的 openshift.jsonopenshift.yml 清单文件。