繁体   English   中英

Spring Boot - 在运行时或编译时有条件地加载模块

[英]Spring Boot - Conditionally load module during runtime or compile-time

首先,我是 Spring Boot 的新手,所以我不确定框架内是否可以实现这样的功能。

让我描述一下我的问题。

我有 10 个代码库。 每个存储库侦听数据流,解析数据并更新数据库。 由于可维护性问题,我计划将其置于单个代码存储库中。 这个新应用程序将被通用化,并且某些特定于应用程序的配置(例如,我应该连接到哪个流,数据库主机)将在运行时检索。

从理论上讲,这将允许我维护一个单一的代码库,但根据我需要的配置将其部署为 10 个独立的服务。 但是,有一组特定于应用程序的 java 类用于解析检索到的数据。 为了更好地理解这一点,请参阅下图。

在此处输入图片说明

理想情况下,我仍然需要在同一个存储库中维护这些类,但作为单独的模块。 加载配置后,应用程序应该能够将相应的模块加载到应用程序上下文中并初始化 Java 类。 不会使用其他模块。

我可以用 Spring Boot 做这样的事情吗? 或者,如果我可以创建单独的构建然后可以单独部署,那么即使是构建时解决方案也很好。

不确定我是否理解它,但为什么不尝试 spring profile ( https://www.baeldung.com/spring-profiles )。 您可以为每个服务设置不同的配置,并在运行时使用 spring.profiles.active 说明将使用什么配置。

像这样的东西也很有用https://www.baeldung.com/spring-reloading-properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM