1.6. 在 OpenShift 中使用 Dekorate 和 Spring Boot
以下示例演示了如何进行:
-
您可以在应用程序中使用
openshift-spring-stater
。 - Dekorate 可以自动识别应用程序的类型,并相应地配置 OpenShift 服务路由和探测。
- 您可以将应用程序设置为在 Maven 编译应用程序后触发 Source-to-image 构建。
先决条件
- 基于 Maven 的应用项目配置为使用 Spring Boot 和 Dekorate。
-
@SpringBootApplication
注解添加到项目中的源文件中。 - Java JDK 8 或 JDK 11 已安装。
- 已安装 Maven。
-
安装了
oc
命令行工具。 -
使用
oc
命令行工具登录到 OpenShift 集群。
流程
在应用程序项目的
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>
将
@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); } }
在应用程序中添加 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 路由
- 在应用程序的路由上公开服务
- 配置存活度和就绪度探测设置
-
构建和部署您的应用程序。包含
-Ddekorate.deploy=true
属性,以在 Maven 编译应用程序后自动执行 source-to-image 构建。
mvn clean install -Ddekorate.deploy=true