我在java项目中工作,该项目实现了我们部署在多个应用程序服务器(Wildfly,Liberty(上的REST API(web服务,没有微服务或弹簧引导(。。到目前为止,我们为单独的部署平台维护了不同的代码库。代码内部虽然逻辑相同,但导入包和pom依赖项不同。场景:
- 在Wildfly中,我们使用windows FTP进行文件传输,但对于liberty服务器,我们使用SSL
- Liberty不支持用于在wildfly中创建JWT令牌的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.