@gengzhengtao
2015-08-12T08:52:16.000000Z
字数 2773
阅读 1490
电商平台broadleafCommerce Broadleaf概念
Broadleaf 为电子商务进程的关键阶段提供了可配置的工作流程 -即:结账,定价和购物车操作。这些工作流使用 Spring application context 文件中的 xml 来表示。在最基本的层面,Broadleaf为结账提供了使用简单模块覆盖基本步骤的默认配置。为了使用自己的需求和业务规范,大部分用户可能需要重写部分或者全部默认的配置步骤。我们将开始通过描述默认的配置,然后再进入自定义策略。
<!-- Pricing Workflow configuration --><bean p:order="1000" id="blOfferActivity" class="org.broadleafcommerce.core.pricing.service.workflow.OfferActivity" /><bean p:order="2000" id="blConsolidateFulfillmentFeesActivity" class="org.broadleafcommerce.core.pricing.service.workflow.ConsolidateFulfillmentFeesActivity" /><bean p:order="3000" id="blFulfillmentItemPricingActivity" class="org.broadleafcommerce.core.pricing.service.workflow.FulfillmentItemPricingActivity" /><bean p:order="4000" id="blFulfillmentGroupMerchandiseTotalActivity" class="org.broadleafcommerce.core.pricing.service.workflow.FulfillmentGroupMerchandiseTotalActivity" /><bean p:order="5000" id="blFulfillmentGroupPricingActivity" class="org.broadleafcommerce.core.pricing.service.workflow.FulfillmentGroupPricingActivity" /><bean p:order="6000" id="blShippingOfferActivity" class="org.broadleafcommerce.core.pricing.service.workflow.ShippingOfferActivity" /><bean p:order="7000" id="blTaxActivity" class="org.broadleafcommerce.core.pricing.service.workflow.TaxActivity" /><bean p:order="8000" id="blTotalActivity" class="org.broadleafcommerce.core.pricing.service.workflow.TotalActivity" /><bean p:order="9000" id="blAdjustOrderPaymentsActivity" class="org.broadleafcommerce.core.pricing.service.workflow.AdjustOrderPaymentsActivity" /><bean id="blPricingWorkflow" class="org.broadleafcommerce.core.workflow.SequenceProcessor"><property name="processContextFactory"><bean class="org.broadleafcommerce.core.pricing.service.workflow.PricingProcessContextFactory"/></property><property name="activities"><list><ref bean="blOfferActivity" /><ref bean="blConsolidateFulfillmentFeesActivity" /><ref bean="blFulfillmentItemPricingActivity" /><ref bean="blFulfillmentGroupMerchandiseTotalActivity" /><ref bean="blFulfillmentGroupPricingActivity" /><ref bean="blShippingOfferActivity" /><ref bean="blTaxActivity" /><ref bean="blTotalActivity"/><ref bean="blAdjustOrderPaymentsActivity"/></list></property><property name="defaultErrorHandler"><bean class="org.broadleafcommerce.core.workflow.DefaultErrorHandler"><property name="unloggedExceptionClasses"><list><value>org.hibernate.exception.LockAcquisitionException</value></list></property></bean></property></bean>
每个工作流实际上是来自SequenceProcessor类的一个实例。此类管理他们应该发生的下属活动的顺序活动以及处理错误状态。工作流被配置成在三个主要的区域,包括 the process context factory,the activities list,以及 the rollback handler
processContextFactory属性必须被设置为一个实现ProcessContextFactory接口的实例。所有此类实现者负责创建实现 ProcessContext 接口 (更多关于这一点) 的类的一个实例。在我们例子中,我们使用PricingProcessContextFactory,并使用他创建一个ProcessContext<Order>的实例。