我正在java项目中工作,该项目实现了REST API(Web服务,没有微服务或Spring Boot的东西),我们将其部署在多个应用程序服务器(Wildfly,Liberty)上。到目前为止,我们为单独的部署维护了不同的代码库平台 。内部代码虽然逻辑相同,但导入包和 pom 依赖项不同。 场景:
- 在 Wildfly 中,我们使用 Windows FTP 进行文件传输,但对于 liberty 服务器,我们使用 SSL
- 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/