java - 如何在 3 个不同的 osgi 包(即 3 个不同的 java 插件项目)中使用相同的对象

标签 java spring jakarta-ee osgi osgi-bundle

我在我的项目中使用 OSGI 框架,并使用 Core Java。

有3个bundle 1.Interfacebundle 2.Implementerbundle(实现接口(interface)) 3.APPbundle(调用接口(interface)方法,我们将值设置为下面的对象)

我有一个带有以下方法的INTERFACE bundle

public int addDevice(String Devtype, RegInfo reginfo);

public intmodifyDevice(String Devicetype,int deviceID,RegInfo reginfo);

然后我在IMPLMENTER包中实现上述方法。从上面可以看到,有一个包含setter和getter的RegInfo对象。因此我将使用getter从对象中获取APP包中设置的值并在内部使用它。

然后我需要为 APP 包中的 RegInfo 对象设置值。

我想在所有三个包之间共享公共(public) RegInfo 对象。 请注意,3 个 bundle 意味着 3 个不同的 java 插件项目在一起。

提前致谢。

最佳答案

然后我会假设 RegInfo 是保存该接口(interface)的 API 包中的一种类型。因此,APP 包将构造并配置一个 RegInfo 对象,并通过接口(interface)将其传递给实现该接口(interface)的类。

您没有提到使用 OSGi 服务,但这是实现者包向消费者提供其接口(interface)实现的推荐方法。然后,应用程序包将查找该服务并使用它。

RegInfo 听起来应该是 DTO 类型。

关于java - 如何在 3 个不同的 osgi 包(即 3 个不同的 java 插件项目)中使用相同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106460/

相关文章:

spring - 多项目Gradle-为每个子项目运行bootRun任务

java - Camunda Spring 事务集成不起作用

java - spring hibernate maven 项目出现 nosuchmethod 错误 InjectionMetadata

java - Spring MVC配置问题

java - 关于servlet的正确使用方法的问题

servlets - 如何在 WAR 中使用注释定义 servlet 过滤器的执行顺序

java - 在 Android Studio 中按下按钮时无法调用电话

java - Resilience4j 返回一个带有参数的尝试过的方法的 CompletableFuture

java - RSA keyczar 和 js

java - 尝试在 Java 应用程序中执行更多 MySql 查询时出现错误 S1000