我在我的项目中使用 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/