首页 > 解决方案 > 如何从父项目的不同 jar 访问服务

问题描述

我的项目有以下架构:有两个库(在 POM.xml 中作为 jar 导入):

这些库被导入到父项目中以公开公共 API。 现在的场景是组件 2 还依赖于组件 1 的一些服务。(例如,组件 2可能调用组件 1服务 A 或服务 B)。

如何使组件 2 可以访问这些服务?我正在使用 Java 和 Spring。

`

+---------------------------------------------------------------------+
|                         Component Imported as jars                  |
|                                    +------------------------------+ |
|                                    |  Component 1                 | |
|                                    |                              | |
|                                    |                              | |
|                                    |  +-------------------------+ | |
|                                    |  |Service A                | | |
|                                    |  +-------------------------+ | |
|                                    |                              | |
|                                    |  +-------------------------+ | |
|                                    |  |Service B                | | |
|                                    |  +-------------------------+ | |
|                                    +------------------------------+ |
|  Parent Project                                                     |
|                                                                     |
|                                    +------------------------------+ |
|                                    |  Component 2                 | |
|                                    |                              | |
|                                    |  +-------------------------+ | |
|                                    |  |Service 1                | | |
|                                    |  +-------------------------+ | |
|                                    |  +-------------------------+ | |
|                                    |  |Service 2                | | |
|                                    |  +-------------------------+ | |
|                                    |                              | |
|                                    |                              | |
|                                    |                              | |
|                                    +------------------------------+ |
|                                                                     |
+---------------------------------------------------------------------+

标签: javaspringdesign-patterns

解决方案


创建一个仅包含服务 1、2、A 和 B 的接口的新项目,然后导入 Component1 和 Component2 poms 然后修改服务以实现各自的接口,记住在 implementations 中添加 @Service 注解

@Service
public class ServiceA implements ServiceAInterface 

如果您需要在组件 2 中使用 serviceA,请添加接口作为类型和 @Autowired 注释的属性

@Autowired
private ServiceAInterface service;

这样您就可以使用 serviceA 功能而无需移动代码


推荐阅读