@gengzhengtao
2015-08-12T08:52:16.000000Z
字数 2773
阅读 1369
电商平台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>
的实例。