Spring Boot 应用程序中的 JCICS 和 JCICSX
可以在 Spring Boot WAR 和 Spring Boot JAR 应用程序中使用 JCICS 或 JCICSX 来调用 CICS® 服务。
这与仅在将 Spring Boot 应用程序部署为 WAR 时可用的 Java™ EE 和 Liberty 的其他集成方面相反。 虽然您可以仅使用 Maven Central 上的 com.ibm.cics.server 或 com.ibm.cics.jcicsx 工件来解析针对 JCICS 或 JCICSX 的 Spring Boot 依赖关系,但更一致的方法是使用材料清单 (BOM) 文件。 这将确保针对一系列 CICS 工件的一致版本进行解析,如以下示例中所示。
注: 以下指示信息使用 JCICS 库作为示例,但也适用于 JCICSX。
避免将 JCICS 库绑定到应用程序中,因为这是由 CICS 运行时提供的。
如果您正在使用 Maven ,那么可以通过针对 JCICS 库进行编译或使用
<scope>provided</scope>来实现此目的。 或者,如果您正在使用 CICS TS BOM ,那么 <dependency> 元素上的 <scope>import</scope> 会自动将作用域值延迟到 CICS BOM。 CICS BOM 将应用 provided 作用域,这将确保仅在构建时包含 JCICS。 它不会嵌入到应用程序中,在该应用程序中,它可能会与 CICS 运行时所使用的版本发生冲突。 例如,<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ibm.cics</groupId>
<artifactId>com.ibm.cics.ts.bom</artifactId>
<version>5.6-20200609123739</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>如果您正在使用 Gradle,那么可以通过使用 enforcedPlatform 限定符对 compileOnly 伪指令进行编码来利用 CICS TS BOM。 这样做将从 BOM 推断版本信息,并确保对所包含工件的引用一致且兼容。 此后,要声明对来自 BOM 的 JCICS 库 (com.ibm.cics.server) 或任何其他 CICS 工件的依赖关系,不需要版本限定符,只需对相应的依赖关系语句进行编码。
例如,
dependencies {
compileOnly enforcedPlatform('com.ibm.cics:com.ibm.cics.ts.bom:5.6-20200609123739')
compileOnly("com.ibm.cics:com.ibm.cics.server") //dependency on JCICS
}注: 请参阅 Maven Central 以获取适用于您的 CICS发行版的最新版本号。
有关可以使用 Maven 和 Gradle解析的更多 CICS提供的依赖关系,请参阅 使用 Gradle 或 Maven 管理 Java 依赖关系。