BroadleafCommerce介绍

1. 介绍

BroadleafCommerce是一个Java开源电子商务网站框架。其目标是开发企业级商务网站,它提供健壮的数据和服务模型、富客户端管理平台、已经一些核心电子商务有关的工具。

2. 特性

2.1 Catalog (目录分类)

提供灵活的产品和类型管理,一个重要的特性是可以继承产品分类来满足特殊的商业需求。管理界面可以管理各种类别和产品。

2.2 Promotion System(促销系统)

可通过配置的方式管理促销。以下类促销示无需客制化而通过管理界面即可管理:

  • 百分比折扣、金额折扣、固定价格(Percent Off / Dollar Off / Fixed Price)
  • 订单、订单项、快递级别促销
  • 买一赠一促销
  • 基于客户、购物车或类别属性的促销

2.3 Content Management System(内容管理系统)

内容管理系统有以下特性:

  • 支持用户直接管理静态页面
  • 可以配置顾客内容类型(如广告)
  • 提供UI界面管理静态页面、结构化内容、图片以及其他内容;
  • 结构化内容能够针对性的对某些客户显示(如对满足一定条件的客户显示广告)

3. 架构

3.1 Spring Framework

Spring提供诸多功能,包括依赖注入和事务管理

3.2 Security

Spring Security提供强健的安全认证框架,控制代码和页面级别的认证和授权。

3.3 Persistence

使用JPA和hibernate实现ORM基础

3.4 Asynchronous Messaging

使用spring JMS和一个现代的JMS代理交互来实现应用消息的异步处理。

3.5 Search

通过整合流行的Compass和lucene项目提供可灵活的domain查找功能。

3.6 Task Scheduling

使用Quartz提供排程功能。

3.7 Email

Email功能分为同步和异步(jms)两种模式。Email内容可以通过velocity模块客制化。支持mail打开和连接点击跟踪。

3.8 Modular Design(模块化设计)

提供各种模块,可以和电子商务的一些重要功能进行交互,如信用卡处理、税收服务、快递公司。 比如,USPS快递模块是一个好的案例。 客户模块可以很方便的开发并整合进来。

3.9 Configurable Workflows(可配置的工作流)

电子商务生命周期的关键表现在可配置的工作流。系统能够对这些关键的地方进行完全的控制,包括价格和结账,允许对订单、行为和客户执行模块进行操作。支持复杂内嵌行为的合成工作流。

3.10 Extensible Design(可扩展性设计)

扩展性是我们设计的核心,几乎broadleaf所有的组件都是可以继承、或添加、或者通过修改增强和改变默认的行为。 这些组件包括所有的service、数据访问对象、实体。

3.11 Configuration Merging(配置合并)

我们以扩展模块的附加部分,为客户提供对spring配置文件进行合并的功能。它可以最小化配置,一个实现必须清楚它允许用户只需把精力放在他们自己的配置细节。 Broadleaf在运行时会智能的将实现者的配置信息和自己的配置信息进行合并。

3.12 Runtime Configuration Management(运行时配置管理)

services、模块和其他子系统的配置属性通过JMX暴露,这样管理者不用关闭系统就可以改变应用行为。

3.13 Presentation Layer Support(表现层支持)

提供很多事先写好的spring MVC控制器来加快表现层的开发。

3.14 QoS(服务质量)

提供对客户和默认模块的服务质量监控,同时支持外部日志和email。其他客户Qos处理器可以通过我们的open API添加。

3.15 PCI Considerations(PCI注意事项)

我们的架构和设计经过了仔细的分析,帮助你在决定存储和使用敏感的客户金融账号信息的时候实现PCI遵从性。支付账号信息是分别引用的,允许你将机密的数据隔离存储到一个独立的安全的数据库平台。已经添加了API方法来包含PCI遵从性加密schema。另外,提供冗长的日志跟踪交易交互信息。

PCI(Payment Card Industry)(Payment Card Industry (PCI) Data Security Standard).支付卡行业 (PCI) 数据安全标准 (DSS)是一组全面的要求,旨在确保持卡人的信用卡和借记卡信息保持安全,而不管这些信息是在何处以何种方法收集、处理、传输和存储。

PCI DSS 由 PCI 安全标准委员会的创始成员(包括 American Express、Discover Financial Services、JCB、MasterCard Worldwide 和 Visa International)制定,旨在鼓励国际上采用一致的数据安全措施。

PCI DSS 中的要求是针对在日常运营期间需要处理持卡人数据的公司和机构提出的。具体而言,PCI DSS 对在整个营业日中处理持卡人数据的金融机构、贸易商和服务提供商提出了要求。PCI DSS 包括有关安全管理、策略、过程、网络体系结构、软件设计的要求的列表,以及用来保护持卡人数据的其他措施。

3.16 Customizable Administration Platform (客制化管理平台)

管理应用基于我们新的开放的管理平台,使用标准面向对象的技术提供一个清晰的客制化方式。管理平台和核心框架一样,都有很好扩展性。表现层是基于有名的可信赖的GWT和SmartGWT技术。

4. 源代码介绍

4.1 BroadLeaf核心领域对象分析

核心领域对象详见broadleaf-framework模块org.broadleafcommerce.core.*.domain包下的领域类。

4.2 BroadLeaf的子系统及其职责

Broadleaf做电子商务网站需要两部分内容。

第一部分:Broadleaf框架 Broadleaf电子商务框架由有9大模块组成(不包括第三方模块)

1) broadleaf-common
各个模块共享的集合类. > 依赖于 broadleaf-instrument

2) broadleaf-framework 
Broadleaf框架的核心类 > 依赖 于broadleaf-common, broadleaf-profile, broadleaf-contentmanagement-module

3) broadleaf-framework-web 
Spring MVC 控制器和相关的项目 > 依赖于 broadleaf-framework, broadleaf-profile, broadleaf-profile-web

4) broadleaf-profile 
客户资料相关的类,工具类, email, 配置合并 > 依赖于 broadleaf-common

5) broadleaf-profile-web 
Spring MVC控制器和 相关项目的 profile 模块> 依赖于on broadleaf-profile

6) broadleaf-instrument 
允许运行时检测到某些 Broadleaf的注解> 无依赖

7) broadleaf-open-admin-platform 
为Hibernate管理的domains 创建可拓展的用户图形管理界面框架> 依赖于 broadleaf-common

8) broadleaf-contentmanagement-module 
通过管理工具管理的一个功能齐全的内容管理系统 > 依赖于 broadleaf-open-admin-platform

9) broadleaf-admin-module 内容: Broadleaf 电子商务框架特定的管理模块,插入开发的管理平台> 依赖于 broadleaf-framework, broadleaf-open-admin-platform, broadleaf-contentmanagement-module

第二部分:需要在框架的基础上做web的开发,其框架已经封装了 已有功能的控制器方法,但是没有增加请求映射。DemoSite就是一个示例工程。

DemoSite 总共三个模块

  • core:框架模块 集成了框架
  • admin:后台管理页面的封装
  • site:前台网站的封装

4.3 BroadLeaf的分层及层之间的通讯机制

BroadLeaf的DemoSite 站点通过Maven集成BroadLeaf框架的各个模块,各个模块通过方法调用进行集成。就像添加普通的jar包一样。

BroadLeaf框架采用常见的MVC架构 分为控制层 服务层 DAO层。

4.4 BroadLeaf的扩展机制

1) 界面拓展机制

BroadLeaf的界面与框架式分离的(后台管理页面是集成在broadleaf-open-admin-platform模块里面),界面采用thymeleaf模板引擎开发。界面的拓展只需要美工针对于他们的模板修改样式就行。

如果觉得他们的模板实在不好,直接自己开发一套模板 替换到一下就可以了 只需要在applicationContext-servlet.xml中修改替代的模板位置。

2) 用户拓展机制

BroadLeaf提供了 RegisterCustomerForm、CustomerAttributes两个类用户拓展用户属性。添加的属性只需要简单的配置一下就可以了(BroadLeaf采用的Hibernate的数据库字段同步,修改完实体后数据库会自动的修改)

3) 订单处理流程拓展机制

增加或者删除订单流程只需要配置blCheckoutWorkflow bean实体覆盖框架提供的。 然后再自定义Activiti任务 添加到新的blCheckoutWorkflow 的activities属性列表里面就可以了。

4) 付款方式拓展机制

增加新的付款实体 实现其付款接口。

5) 数据库切换方式

  • 1.修改pom里面涉及到数据库连接的dependency为要切换的数据库的jdbc连接驱动
  • 2.修改properties文件里面的数据库连接信息(用户名、密码、URL、driverClassName、hibernate数据库方言)
  • 3.修改jndi连接信息

5. 缺点

目前已知的缺点或缺陷有:

  • 实体之间存在双向关联,导致无法直接使用json的工具类序列化和反序列化实体类。如果的确需要序列化实体类,比如说你需要提供api获取一些信息,你可以参考DemoSite中的api,对实体的封装类使用webservice进行序列化。
时间: 2024-09-09 20:55:56

BroadleafCommerce介绍的相关文章

PhotoShop中正片负片叠底的原理介绍

关于正片叠底,正片,负片,通道,色相,色相环等等的相关理论一堆,大家可以从网上查到,原理就不讲了. 感觉单通道正片叠底效果应该属于填充色一类,但却与填充色又有很大的差异,与照片滤镜功能也有所差异,运用得当,最大的优点是在叠底后仍能保持比较好的照片通透度,而且简单易用,特别适合不太熟悉PS操作的朋友,此类方法运用广泛,配合起来使用比较方便,慢慢介绍吧. photoshop教程注:以下介绍的为RGB模式下的叠底,与CMYK模式下有所区别 方法一,单通道正片叠底 例一,叠出阳光色.提示:图片应尽量少漏

PS蒙版详细介绍

教程像飞特的朋友们介绍PS的蒙版原理和实例的运用,蒙版,通道,历史记录,图层样式,混合模式(已经开篇讲解了),智能对象,智能滤镜,嵌入图层,动作,其它,后期我针对这些,讲讲应用,希望大家有更深的感受.享受学习理论的乐趣. 先从蒙版说起吧. 讲到蒙版,要先了解下蒙版的由来.相信你一定能深刻领悟蒙版的使用技巧,看下提纲: 1,蒙版的由来 2,快速蒙版与选区 3,图层蒙版 4,PS CS5的蒙版新用法 一,蒙版的由来 犹记当年计划生育推行的时候,墙上,电线杆上,到处都是大红标语,如"计划生育好&quo

andriod平台"点九" .9.png设计介绍

"点九"是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形. 我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真. OK,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示

Python中字典的基本知识初步介绍

  这篇文章主要介绍了Python中字典的基本知识初步介绍,是Python入门中的基础知识,需要的朋友可以参考下 字典是可变的,并且可以存储任意数量的Python对象,包括其他容器类型另一个容器类型.字典包括键对(称为项目)及其相应的值. Python字典也被称为关联数组或哈希表.字典的一般语法如下: ? 1 dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 可以用下面的方式创建字典: ? 1 2 dict1 = { 'abc':

简单介绍Python2.x版本中的cmp()方法的使用

  这篇文章主要介绍了简单介绍Python2.x版本中的cmp()方法的使用,然而该方法在Python3.x版本中已并不再内置...需要的朋友可以参考下 cmp()方法比较两个列表的元素. 语法 以下是cmp()方法的语法: ? 1 cmp(list1, list2) 参数 list1 -- 这是要进行比较的第一个列表 list2 -- 这是要进行比较的第二个列表 返回值 如果元素是相同类型的,执行比较,并返回结果.如果元素是不同的类型,检查,看看他们是否是数字 如果是数字必要时强制进行数字比较

百度卫士界面功能使用介绍

百度卫士1.0 Beta版发布 和百度杀毒一样,百度卫士也做出了"永久免费.不骚扰用户.不胁迫用户.不偷窥用户隐私"几大承诺.百度卫士自我总结为"轻.快.智.净"四大特点,目标自然是直指业界一哥:360安全卫士. 百度卫士的自我总结:"轻.快.智.净" 下面马上为大家介绍百度卫士1.0 Beta版的各项功能. 1.百度卫士界面设计赏析 百度卫士的安装界面与百度杀毒相似,不同的是主色使用了浅蓝色(百度杀毒使用的是绿色),百度卫士的安装包体积不超过1

Java语言抽象工厂创立性模式介绍

工厂模式有简单工厂模式,工厂方法模式和抽象工厂模式几种形态.其中简单 工厂模式和工厂方法模式已经在前面作过介绍.在这里,我们来介绍抽象工厂模 式. 抽象工厂模式是所有形态的工厂模式中最为抽象和最具广泛性的一种形态. 抽象工厂模式的定义 抽象工厂模式是工厂方法模式的进一步扩广化和抽象化.我们给出抽象工厂 模式的类图定义如下. 图1. 抽象工厂模式的类图定义 从上图可以看出,简单工厂模式涉及到以下的角色 抽象工厂(AbstractFactory)类或接口 担任这个角色的是工厂方法模式的核心,它是与应

最实用Win7技巧快捷操作介绍

Win7的桌面设置更加个性化,我们的照片.喜欢的壁纸,都可以随时设为背景,而女生们的桌面壁纸很多都比较卡哇伊,但如果去做演示时,投射到投影公示,也许就会带来一些尴尬.其实在演示前,我们只需要通过Win X快捷键打开移动中心,对演示设置进行一些简单的设置即可,这样在演示时, 作为职场丽人,移动办公.快捷办公,都是必不可少,有一个安全稳定的操作系统和顺手的Office 办公软件尤为重要.微软Win7系统自发布以来就受到用户的欢迎,其美观的界面.流畅的操作体验.安全稳定的运行.高效便捷的功能特性,已经

Apache Gora介绍

介绍         Gora是一个开源的ORM框架,主要为大数据提供内存数据模型与数据的持久化.目前Gora支持对于列数据.key-value数据,文档数据与RDBMS数据的存储,还支持使用Apache Hadoop来对对大数据进行分析 特点             虽然目前市面上有很多不错的关系数据库的ORM框架,但是基于数据模型的框架如JDO还是有一些不足,如对于列数据模型的存储与持久化.Gora正好弥补了这个问题,它能使用户很容易对大数据时行 内存建模与持久化,而且支持Hadoop来对大