版本号:v1.02
@TOChtml
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.
Addon是一种特殊的extension,扩展了Commerce Accelerator的功能。这种extension添加了UI页面,但又没有直接修改Storefront的实现。java
AddOns extend the functionality of the SAP Commerce Accelerator. They are a type of extension that allow you to add front-end files such JSP, HTML, CSS, and JavaScript files, and images without modifying the storefront front-end files directly.
这个连接包含了一个表格,能够查询Extension和Addon的ID和description.node
An extension is an encapsulated piece of software that extends SAP Commerce functionality by either modifying existing features, or introduction new features.Extension modules are structural elements of an extension.web
Extension module是extension的一部分。
You can implement JUnit tests for the extension's core extension module. The files for these JUnit tests must be located in the testsrc directory of the extension.spring每一个extension都有一个名叫core的 extension module,包含了该extension的type system definition,items.xml, 位于resources文件夹内。命名规范:
The name of this file is always defined accordingly: <$extension> -items.xml where <$extension> is the name of an extension.
与类型相关的Java source code文件也位于core extension module内。数据库
items.xml的连接.浏览器
To launch a web extension module via your web browser, go to the URL path to Platform on the server/name of extension/starting page. For example, if you are running myExtension locally on default settings, the URL would be http://localhost:9001/myExtension.
A core module consists of an items.xml file (and therefore allows to add new types to the system), a manager class, classes for the JaLo Layer and the ServiceLayer and JUnit test classes. The following directories are required: /src, /resources, /testsrc.While the Commerce Platform can run without any package, no package can run without the Commerce Platform.tomcat
Commerce platform也是由extension组成的,称为core extension. 在这些core extension之上才是build framework,和tomcat server.架构
什么是Hybris的initialization:app
Initialization drops existing type definitions from the database prior to rebuilding, so the entire type system is created from scratch. So during an initialization, type system definitions are created to match the type system definition in the items.xml files.Update: items.xml里定义的新类型,会施加到类型系统里。
基于items.xml的定义生成types.
是Service Layer的foundation.
Dependent Injection: 组件的依赖不是其自身维护,而是配置在外部。
Dependency injection is a software architecture pattern in which a component's dependencies are not managed by the component itself but are configured externally.
A so-called container (application context) reads the configuration file, resolves the dependencies, and puts together the objects. When the objects are ready, all the dependencies are already injected.
<bean class="de.hybris.platform.order.OrderService"> <property name="stockService"> <bean class="de.hybris.platform.stock.StockService"/> </property> </bean>
xml文件的位置:${HYBRIS_BIN_DIR}/platform/ext/core/resources
命名规范:
There you find files with the name pattern |component|-spring.xml, where <component> is something like product, order, i18n, security, and so on. For the beans themselves, a name pattern such as xyzService is recommended, such as: productService, catalogService, and so on.
Service Layer的API经过interface暴露出来。interface的实现就是Spring beans,id name能够从SAP commerce API doc里找到。
SAP Commerce Accelerator is a ready-to-use web implementation template that enables you to jumpstart your implementation and easily build and maintain a feature-rich and flexible commerce solution.
是三层的统称:ServiceLayer Framework (including the actual ServiceLayer, the Infrastructure Services, and the Business Services)
relies on so-called models, which are POJOs. Attributes on models have automatically generated getter and setter methods. Models are generated based on types.
ProductModel是service layer的概念,基于type自动生成,getter和setter.
Type layer也就是items.xml.
类型系统是对象的模板。platform里每一个对象都是类型的实例。
Types定义了持久化对象:
A Type is the type definition in items.xml and its Java implementation.
An object instance of a type is called an item:
类型分两种:System-related types and business-related types.
System-related types又由下列类型组成:
Infrastructure types: ComposedTypes (also referred to as ItemTypes) set up type definitions and may carry attributes to hold information. In the end, every persistent object in the SAP Commerce is an instance of ComposedType or of one of its subtypes.
Business-related types: (like Order, Discount, Shoe) allow you to manage product and / or customer information so that you can run your business.
every object stored in SAP Commerce is an instance of a type. Even type definitions are instances of the type Type. This means that there are two aspects of a type definition: it is an item and, at the same time, it defines other items.
To differentiate between normal object instances and type definitions, non-type objects in Platform are referred to as items. The lower case spelling item refers to an object in Platform; the upper case spelling Item refers to the type definition.
小写的items表明platform里non-type对象, 大写的表明类型定义。
The following code snippet defines an item called SpecialProduct that is a subtype of Product but its type is not defined as a ComposedType, but as a SpecialComposedType (via the metatype attribute). Instances of SpecialProduct are thus subtypes of Product, but the type definition is stored as a SpecialComposedType.
<item code="SpecialProduct" metatype="SpecialComposedType" extends="Product">
类型定义attribute,如同Java 类定义fields, attribute能够是复合类型或者简单Java类型。