我有一个Web应用程序,它将安装在多个公司中。每个公司都有API,我试图统一并放入单独的模块。 (这是一个安全原因,因为我不希望CompanyA
拥有CompanyB
的API。
所以,我认为它应该是这样的(顺便说一句,我使用Maven),
external-api
模块,它只有API接口,如:
interface ExternalApi {
....
}
main-application
模块,取决于 external-api
并注明其实施:
@RestController
class ApiController {
@Inject
ExternalApi api;
...
}
和很多模块一样
companyA-external-api
(也取决于 external-api
)与ExternalApi
接口实施:
@Service
class CompanyAExternalApi implements ExternalApi {
....
}
现在,据我所知,我可以将外部api模块的输出jar放在应用程序的类路径下,并让它由Spring加载和处理。
这是合法的方式吗?或者它应该以更自动的方式完成(也许有一些Maven插件或Gradle脚本),因为我感觉像是在重新发明轮子?