有人可以解释一下 capi
包的用途吗?是为了依赖注入(inject)吗?
此外,连接两个 BO 的正确方法是什么(例如 BasketBO
和 BucketBO
以访问它们的方法并创建一些新数据)?
是通过管道还是通过一些新的公共(public)对象?
最佳答案
capi(cartridge API)包是将接口(interface)/类放入 cartridge 的公共(public) API 的地方。您可能已经注意到几乎总是有一个内部包,这是公共(public) API 的实现所在。所以接口(interface)SomeObjectMgr
将在com.example.capi
包中,实现类SomeObjectMgrImpl
在com.example.internal
包。您可以认为 capi 包是稳定的,而内部包可能会随着版本的不同而发生巨大变化。
关于你的第二个问题,BO 是在一个aggregate 中组合在一起的。如果它们属于一起,但聚合可以引用其他聚合。因此,您在需要建立的关系方面不受限制。例如,BasketBO 可以使用其访问方法访问 BucketBO 对象。你可以写一个 extension具有操作两个 BO 并返回您需要的任何数据的业务逻辑。但是请记住,事务控制是在管道/管道级别上进行的。因此,如果您需要回滚事务,请在设计方法时考虑到这一点。
至于依赖注入(inject),intershop使用的是google的guice框架。您可以找到有关如何使用它的更多信息 here .
关于java - Intershop 对象接线如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839574/