头图

首先在项目根目录新建一个文件 manifest.yml,内容如下:

---
applications:
- name: bookstore
  path: srv/target/bookstore-exec.jar
  random-route: true
  services:
  - bookstore-hana

文件描述了应用程序的名称和可以找到应用程序存档的路径。 Spring Boot 应用程序可以从单个 JAR 存档中部署,如上面 path 字段值所示:srv/target/bookstore-exec.jar.

应用程序的路由(即可用的 HTTP 端点)随机生成(random-route: true),以防止与其他应用程序路由发生冲突。

之前的 SAP HANA 服务实例的名称 bookstore-hana 在此处的服务部分 (bookstore-hana) 下使用。

Cloud Foundry 使用 Open Service Broker API 为应用程序提供服务。 在 Cloud Foundry 上运行应用程序时,可以使用环境变量 VCAP_SERVICES(类似于 default-env.json 的内容),其中包含所有必需的服务凭证。 CAP Java 可以自动读取此环境变量并将您的应用程序配置为使用 SAP HANA 数据库。

所描述的功能再次作为 CAP Java 中的另一个插件提供。 因此,您需要向项目中添加额外的 Maven 依赖项。 该依赖项将带来从 Cloud Foundry 的 VCAP_SERVICES 环境变量读取服务绑定的能力。

为了使用 CloudFoundry 上的 Open Service Broker API,需要在 pom.xml 里添加如下的依赖:

<dependency>
        <groupId>com.sap.cds</groupId>
        <artifactId>cds-feature-cloudfoundry</artifactId>
    </dependency>

即使启用了 Cloud Foundry 功能,CAP Java 也可以确保应用程序仍然可以在本地运行,使用基于 default-env.json 自动配置的 SQLite 或 SAP HANA。 它在所有环境中提供无缝的开发人员体验。

如果我们向应用程序添加了额外的 Java 系统属性 -Dspring-boot.run.profiles=cloud,以确保 application.yaml 中的默认 SQLite 配置不会生效。 将应用程序部署到 Cloud Foundry 时,Cloud Foundry Java Buildpack 会自动完成。

使用命令行 mvn clean install 进行构建:

使用 cf push 进行部署:

最终生成的应用 url:

https://bookstore-cheerful-ba...


注销
1k 声望1.6k 粉丝

invalid