Intershop 对象接线如何工作
How does Intershop object wiring work
有人可以解释一下 capi
包的用途吗?是否用于依赖注入?
此外,连接两个 BO 的正确方法是什么(例如 BasketBO
和 BucketBO
以访问他们的方法并创建一些新数据)?
是通过管道还是通过一些新的公共对象?
capi (cartridge API) 包是你把 interfaces/classes 放到你的 public API 的地方。您可能已经注意到几乎总是有一个内部包,这就是 public API 的实现所在。所以接口 SomeObjectMgr
将在 com.example.capi
包中,实现 class SomeObjectMgrImpl
在 com.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。
有人可以解释一下 capi
包的用途吗?是否用于依赖注入?
此外,连接两个 BO 的正确方法是什么(例如 BasketBO
和 BucketBO
以访问他们的方法并创建一些新数据)?
是通过管道还是通过一些新的公共对象?
capi (cartridge API) 包是你把 interfaces/classes 放到你的 public API 的地方。您可能已经注意到几乎总是有一个内部包,这就是 public API 的实现所在。所以接口 SomeObjectMgr
将在 com.example.capi
包中,实现 class SomeObjectMgrImpl
在 com.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。