当前位置: 首页 > news >正文

Apache OFBIZ高速上手(三)--文件夹amp;amp;配置文件介绍

1OFBiz简单介绍,什么是OFBiz

          OFBiz is an Apache Software Foundation top level project.

          Apache  OFBiz全称是The ApacheOpen For Business Project

是开放的电子商务平台。是一个很著名的开源项目,提供了创建基于最新的J2EE/XML规范和技术标准。构建大中型企业级、快平台、跨数据库、跨应用server的多层、分布式电子商务类WEB应用系统的框架。

          OFBiz差点儿实现了全部的J2EE核心设计模式,各个模块之间的耦合比較松散,用户能够比較easy的依据自己的须要进行拆卸。很灵活。以下介绍一下它的文件夹结构以及文件说明。



2、文件夹结构


整个项目文件夹结构


    applications:`各个应用的文件夹,包括了OFBiz核心的应用程序组件,如订单管理。电子商务存储等。

    framework:框架文件夹,包括OFBiz框架的组件,比如实体引擎和服务引擎。这是OFBiz框架的核心。其它应用程序都是基于它来构建的。

  hot-deploy:热部署文件夹

 specialpurpose:专门文件夹,包括一些其它的应用程序。不是OFBiz的核心部分。

  themes:主题文件夹

  tools:工具文件夹

 

假设我们要写一个模块。那么建的文件夹例如以下,把此模块热部署到hot-deploy中就可以。


 

Ofbiz-component.xml:每一个组件都有这样一个文件。他们用于定位该组件的entity,service,web配置文件以及jar包等。

build.xmlant文件,用于測试和构建这个应用程序。

 

build文件夹是放本模块生成的jar包和已编译的Java代码。

config文件夹包括配置文件。比如国际化的UI标签的XML文件。

data文件夹包括种籽和演示数据。

 

entitydef文件夹包括实体配置的xml,即数据模型定义。

 

script脚本文件夹包括业务逻辑的脚本文件。

servicedef包括services服务,是细粒度的业务逻辑(DAO方法)。

 

src源文件文件夹,包括实现业务逻辑的Java类文件

 

webapp应用程序的前端。一个应用程序能有多个webapp应用程序。包括WEB-INFJSPController.xml,web.xml

web.xml事实上就和strutsxml配置一样的。用来放一些拦截器,监听器这些东西的。当中有个地方配置screen的地址。

这个地方注意一下。

(见上篇博文)

Controller.xml,从文件的命名来看。我们可能猜出它是对controller的定义。

更确切的说它是定义viewcontroller之间的映射关系,不仅包括了请求的映射关系。同一时候还包括了视图的映射关系,以及一系列的处理器不如视图解析处理器,事件处理器等。

 

         widget用来放webForm,screen,ftl等页面。它能够将一个完整的html页面拆分为一个个小块的widget,终于的页面是通过widget组合而成。

        widget的优点是能够不用写不论什么htmlcss代码就能够得到一个统一的完整的页面。展示业务数据也能够轻松的获取。缺点是,不像FreeMarker是一个纯页面技术,从requestsession中得到业务数据。然后直接将其展示处理。Widget技术将业务数据获取和展示混在一起,后台开发者和页面设计人员不能分工合作。甚至仅仅有后台设计人员才干开发Ofbiz应用。

 

3、总结

         

       从OFBiz的文件夹结构上我们很easy理解每一个文件是做什么的。这些知识须要建立在我们已有的知识基础上,这些东西并非新东西。全部的技术的思想都是一致的。应该说都是为了解决某一类问题。

OFBiz是封装了一套业务框架,MVC框架,ORMapping等。同一时候也封装了自己的页面技术。实现ERP/CRM复杂的业务系统很简单。

           ERP/CRM业务系统复杂多变。模块众多。什么样的框架能够满足这种系统呢:一是适应业务变化,第二适合高速开发,第三页面风格能够一致。OFBiz就是这种框架,entity加入降低一个字段,在OFBiz中仅仅须要在entitymodel中做改动,在输入页面,显示页面。改动页面都不用做不论什么的改动就能够看到变化,并且业务逻辑模块也不用改动就能够对变化的字段进行维护,很方便。

相关文章:

  • 字符串输入
  • 06.C(指针)
  • JavaEE GenericServlet 解析
  • 算法系列15天速成——第十四天 图【上】
  • ionic3 关于屏幕方向问题
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • Confluence 6 更新目录
  • Quartz 表达式生成器
  • MongoDb进阶实践之五 MongoDB修改命令详述
  • [2]十道算法题【Java实现】
  • SSH密钥分发
  • Angular数据绑定机制
  • Java 中的E,K,V,T,U,S
  • 订阅Forge Viewer所有的事件
  • 使用正则表达式,取得点击次数,函数抽离
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译]如何构建服务器端web组件,为何要构建?
  • Consul Config 使用Git做版本控制的实现
  • CSS 专业技巧
  • Elasticsearch 参考指南(升级前重新索引)
  • es6--symbol
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • MySQL几个简单SQL的优化
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue 动态创建 component
  • 测试开发系类之接口自动化测试
  • 仿天猫超市收藏抛物线动画工具库
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 记一次删除Git记录中的大文件的过程
  • 时间复杂度与空间复杂度分析
  • 系统认识JavaScript正则表达式
  • 智能合约Solidity教程-事件和日志(一)
  • FaaS 的简单实践
  • 数据库巡检项
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #NOIP 2014#Day.2 T3 解方程
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $L^p$ 调和函数恒为零
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (10)STL算法之搜索(二) 二分查找
  • (3)nginx 配置(nginx.conf)
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (区间dp) (经典例题) 石子合并
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)人的集合论——移山之道
  • ******IT公司面试题汇总+优秀技术博客汇总
  • . NET自动找可写目录
  • .aanva
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查