作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在写 weather
与 2 个供应商的服务 weather-1
和 weather-2
.我有两个 Spring Controller
类(class) controller-1
和 controller-2
分别调用这两个服务。
我的意图是在两个天气服务 jar 之间切换,就像我想从 weather-1
获取天气数据一样。然后 controller-1
必须用 weather-1.jar
编译文件同时 controller-2
保持不变。
我试过两种不同的Gradle
两种服务的文件,如 build-weather-1.gradle
和 build-weather-2.gradle
.
两者都有 jar
自己的依赖。
build-weather-1.gradle
implementation 'com.xxx.weather:weather-1:0.0.1'
implementation 'com.xxx.weather:weather-2:0.0.1'
build-weather-1.gradle
使用命令 -
gradle -b build-weather-1.gradle build
.不幸的是,这个构建文件也需要其他服务类 Controller 。
error: package com.xxx.weather.weather-2 does not exist
sourceSets {
main {
java {
exclude 'com/xxxx/weatherservice/controller/Weather2Controller.java'
}
}
}
weather-2
)在 Application.java 文件中被声明为一个 bean,它会抛出 package not found 错误。
最佳答案
您可以考虑以下模式:
WeatherService
界面。 WeatherService
的实现通过它的构造函数。 High-level modules should not depend on low-level modules. Both should depend on abstractions (e.g., interfaces). Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions.
WeatherService
接口(interface)(抽象),而不是具体的天气服务实现。
main()
方法或使用您选择的依赖注入(inject)方法:构建所需天气服务实现的实例,并使用该实例构建您的 Controller 。 WeatherService
接口(interface)和 Controller 的核心 JAR)。 关于java - 如何用不同的 Controller 编译使用相同应用程序文件的多个 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61320930/
我是一名优秀的程序员,十分优秀!