An extension can contain business logic, type definitions, a web application, or a Hybris Management Console configuration. That way, you link up in one place all of the functionality that covers a certain field of use, for example a webshop.
这个概念和ABAP里的package非常类似。
比如这个alipay是成都团队开发的一个extension:
典型结构:
UI:
一个细微的差异是,我们知道在ABAP package里创建的所有object,都可以被其他package的代码访问。即使这些object没有加到package interface的visible element里,runtime也不会报错。
Hybris的extension里的大多数folder下的object,访问控制的behavior和ABAP package一致。除了/web folder下的UI实现:This directory contains the web extension module parts of the extension (JSP files, libraries). Sources and resources from this directory are only accessible to a Web application containing the extension. They cannot be accessed from another extension.
Hybris启动时加载的extension列表:
注意,即使是很多Hybris core的功能,也是以extension的方式实现的,这一点对于从ABAP转过来的developer一开始会特别confusing,因为在ABAP里extension一般意味着属于partner或者客户.
比如这个extension,是Hybris core的一部分.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":