java - 如何为多个部署平台维护相同的代码库

标签 java web-services

我正在java项目中工作,该项目实现了REST API(Web服务,没有微服务或Spring Boot的东西),我们将其部署在多个应用程序服务器(Wildfly,Liberty)上。到目前为止,我们为单独的部署维护了不同的代码库平台 。内部代码虽然逻辑相同,但导入包和 pom 依赖项不同。 场景:

  1. 在 Wildfly 中,我们使用 Windows FTP 进行文件传输,但对于 liberty 服务器,我们使用 SSL
  2. Liberty 不支持用于在 wildfly 中创建 JWT token 的 API。

任何人都可以建议一种方法,以便我可以为不同的部署平台创建单一代码库,以及挑战和瓶颈是什么。

最佳答案

我建议使用 Spring 配置文件。

您可以创建不同的配置文件示例(wildfy、liberty),并创建 2 个组件

@Component
@Profile("wildfy")
public class FTPFileTransfer implement FileTransfer

@Component
@Profile("liberty")
public class SSLFileTransfer implement FileTransfer

如果您使用 -Dspring.profiles.active=wildfy 启动应用程序,则您将拥有 FileTransfer 的特定实现。

我建议你阅读 https://www.baeldung.com/spring-profiles 上的 spring 文档.

关于java - 如何为多个部署平台维护相同的代码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60448778/

相关文章:

java - Apache CXF : A SOAP 1. 2 消息在发送到仅 SOAP 1.1 端点时无效

java - 无法从 Web 服务客户端访问本地主机 (TOMCAT) 上的 WSDL

php - 通过 SoapClient 连接到 eBay Trading API 抛出 'The web service eBayAPI is not properly configured or not found and is disabled' 异常

android - org.xmlpull.v1.XmlPullParserException : expected: START_TAG {http://schemas. xmlsoap.org/soap/envelope/}信封

Java Streams - 更改元素的字段

java - 解析 Freemarker 中的 JSON 错误

java.math.BigInteger 不能转换为 java.lang.Integer

javascript - $.post() 的第三个参数不起作用

java - weblogic 上的 Web 服务客户端应用程序调用 Web 服务

java - 如何在Netbeans中生成Java类的公共(public)接口(interface)?