2 回答
TA贡献1772条经验 获得超5个赞
如果您将 App2.jar 作为依赖项包含在 App1.jar 中,最好的方法是导入 App2 的配置。如果您开始添加扫描和内容,您会将 App1 与 App2 紧密耦合。App1 必须知道不需要的 App2 的实现细节。
如果只是导入 App2 的配置,配置细节会保持封装状态。
我假设您有一个用于 App1 的 Java 配置类(或一个 XML 配置文件)和另一个用于 App2 的类。我还假设 App2 的配置包含所有必要的组件扫描注释和正确的基础包。
如果是这种情况,您可以添加这样的导入,它应该立即起作用:
@Configuration
@Import(SpringConfigurationApp2.class)
public class SpringConfigurationApp1 {
//... some beans....
}
TA贡献1831条经验 获得超10个赞
我看到了@Diego 提供的答案,但该用户需要在客户端应用程序中进行更改。(例如@Import(SpringConfigurationApp2.class)
这里)。
我有另一种方法,客户端(App-1)不需要对应用程序进行任何更改。它只会无缝地工作。这种方法是通过使用 spring 的自动配置,并且 spring-boot 依赖项使用相同的功能。
这是我使用自动配置实现的答案。
对于 App-2,
1)spring.factories
在resources/META-INF下创建文件
2) 添加 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
path-to-app-2-application/SpringConfigurationApp2
对于 App-1,只需将 App-2 作为 maven 依赖项包含在内即可。
这是获取有关https://dzone.com/articles/what-is-spring-boot-auto-configuration 的更多信息的链接。
添加回答
举报