搜索

1.6. 在 OpenShift 中使用 Dekorate 和 Spring Boot

download PDF

以下示例演示了如何进行:

  1. 您可以在应用程序中使用 openshift-spring-stater
  2. Dekorate 可以自动识别应用程序的类型,并相应地配置 OpenShift 服务路由和探测。
  3. 您可以将应用程序设置为在 Maven 编译应用程序后触发 Source-to-image 构建。
  4. 先决条件

    • 基于 Maven 的应用项目配置为使用 Spring Boot 和 Dekorate
    • @SpringBootApplication 注解添加到项目中的源文件中。
    • Java JDK 8 或 JDK 11 已安装。
    • 已安装 Maven。
    • 安装了 oc 命令行工具。
    • 使用 oc 命令行工具登录到 OpenShift 集群。

流程

  1. 在应用程序项目的 pom.xml 文件中添加 Dekorate Spring Starter 作为依赖项。

    pom.xml

    <project>
      ...
      <dependencies>
         ...
        <dependency>
          <groupId>io.dekorate</groupId>
          <artifactId>openshift-spring-starter</artifactId>
          <version>${dekorate.version}</version>
        </dependency>
        ...
      </dependencies>
    ...
    <project>

  2. @SpringBootApplication 注释添加到您的 Main.java 类。这可让 source-to-image 构建在编译应用程序时启动:

    /src/main/java/io/dekorate/example/sbonopenshift/Main.java

    package io.dekorate.example.sbonopenshift;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Main {
    
      public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
      }
    
    }

  3. 在应用程序中添加 Rest 控制器:

    /src/main/java/io/dekorate/example/sbonopenshift/Controller.java

    package io.dekorate.example.sbonopenshift;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class Controller {
    
      @RequestMapping("/")
      public String hello() {
        return "Hello world";
      }
    }

    Dekorate Spring starter 提供的 Spring 应用程序处理器会自动检测到 Rest 控制器,并将应用程序类型标识为 Web 应用。对于 Web 应用程序,Dekorate 会自动生成 OpenShift 应用程序模板并配置:

    • 应用程序的 OpenShift Service 路由
    • 在应用程序的路由上公开服务
    • 配置存活度和就绪度探测设置
  4. 构建和部署您的应用程序。包含 -Ddekorate.deploy=true 属性,以在 Maven 编译应用程序后自动执行 source-to-image 构建。
mvn clean install -Ddekorate.deploy=true
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.