Intershop 对象接线如何工作

How does Intershop object wiring work

有人可以解释一下 capi 包的用途吗?是否用于依赖注入?

此外,连接两个 BO 的正确方法是什么(例如 BasketBOBucketBO 以访问他们的方法并创建一些新数据)?

是通过管道还是通过一些新的公共对象?

capi (cartridge API) 包是你把 interfaces/classes 放到你的 public API 的地方。您可能已经注意到几乎总是有一个内部包,这就是 public API 的实现所在。所以接口 SomeObjectMgr 将在 com.example.capi 包中,实现 class SomeObjectMgrImplcom.example.internal 包中。您可以认为 capi 包是稳定的,而内部包可能会随着版本的不同而发生巨大变化。

关于您的第二个问题,BO 被组合在一个 aggregate if they belong together, but an aggregate can refence other aggregates. So you are not limited in the relations you need to build . Example the BasketBO can access the BucketBO objects using its access methods. You could write an extension 中,具有操纵两个 BO 的业务逻辑和 return 您需要的任何数据。但是请记住,事务控制处于 pipeline/pipelet 级别。因此,如果您需要回滚事务,请在设计方法时考虑到这一点。

至于依赖注入,intershop使用google的guice框架。您可以找到有关如何使用它的更多信息 here