说在前面:
本文内容密集, 信息量超大, 请自备脑洞空间, 收获巨大!!!
关于OFBiz入门知识, 请先看共享文件
不要乱提不动脑筋的问题
[http://ofbizer.iteye.com/blog/2032625]
搭环境:
新手三步走, OFBiz立地成神
[http://ofbizer.iteye.com/blog/2034823]
[http://ofbizer.iteye.com/blog/2028166]
[http://ofbizer.iteye.com/blog/2272549]
本文导航
OFBiz介绍/下载
OFBiz中国
新手引导
常见问题
全面进阶
源码级升华
学习心得
什么样的人能做OFBiz开发
答
能耐心的坚持看完
[Apache+OFBiz+开发初学者指南[Ob4.0-EN+Ob9.0-CN].chm](后文中有下载地址)
并且照着指南实践过
记录下迷惑和问题, 还有学习笔记的任何人
你都可以参与开发!
OFBiz介绍/下载
了解/下载
官网 [http://ofbiz.apache.org]
OFBiz官方下载地址: [http://ofbiz.apache.org/download.html]
OFBiz开发版SVN地址:[http://svn.apache.org/repos/asf/ofbiz/]
OFBiz当前稳定版本打包列表: [http://www.apache.org/dist/ofbiz/]
文档/社区
官方教程 [https://cwiki.apache.org/confluence/]
[https://cwiki.apache.org/confluence/display/OFBIZ]
[https://cwiki.apache.org/confluence/display/OFBADMIN]
[https://cwiki.apache.org/confluence/display/OFBENDUSER]
[https://cwiki.apache.org/confluence/display/OFBREQDES]
[https://cwiki.apache.org/confluence/display/OFBTECH]
OFBiz版本维护Jira: [https://issues.apache.org/jira/browse/OFBIZ]
OFBiz邮件订阅列表: [http://ofbiz.apache.org/mailing-lists.html]
OFBiz在线Demo演示网站
电子商城: [http://demo-stable-ofbiz.apache.org/ecommerce/]
管理工具: [https://demo-stable-ofbiz.apache.org/webtools/control/main]
中国业界强人
Q`Q`群: 7`1`7`0`0`6`6`1 OFBiz超`级`群 (防屏蔽, 请去点)
在组里有, 北京_hongs, 上海_加速度, nick anthony, ★北京_王毅★, 南京 guhao, 杭州_我改名了 ...
我: 上海_香飘飘, email: [email protected]
更详细的介绍, 请参看 [http://ofbizer.iteye.com/blog/2032625]
开始学习
认真看
[Apache+OFBiz+开发初学者指南[Ob4.0-EN+Ob9.0-CN].chm]
一定要坚持看完文档
手工依照指南认真编写指南中代码, 实现指南说到的技术
这个文档是以 OFBiz 9.0 混合 部分4.0版本截图 编写的, 其实用最新版学习影响不大
在看的过程中不要因为迷惑或问题停下脚步, 请记录下迷惑的地方/有问题的地方, 笔记同样重要
跟着它
[OFBiz创建模块-基本CRUD图文教程.docx]
了解一套基本CRUD业务代码的最简单实现方式, 并手工模仿实现
不要被没见过的标签用法阻挡, 先实现, 有问题请记录笔记
这里涉及到了 ant crate-component 创建模块的指令, 一套CRUD的实现图文教程
是时候看它了
[OFBiz技术文档-CN-[ofbiz-tech-zh-cn].doc]
这个文档是介绍 OFBiz 核心原理和代码结构的
同时介绍了很多标签, 说明了标签的属性和用法
还包含了框架支持的很多功能的介绍及用例
看完应该会对OFBiz的运作原理, 编码思路有一定的了解
此时看再看
[OFBiz开发快速入门-hongs-Ob9.04.pdf]
这个文档是 北京_hongs 根据 OFBiz9.04版功能通过代码编写步骤, 逐步截图并解释编写完成的
文档从下载源码开始从头开始介绍开发的步骤和思路
它是作为前面几个文档内容的一个温故存在的, 请耐心看完
入门提示
学会使用 [ant build] 指令来编译 java文件打 jar包
学会使用 [ant load-demo] 或 [ant run-install] 来初始化数据库表结构和数据
学会使用 [ant start] 或 [ant run] 来启动项目
学会使用 [ant create-component] 指令来快速创建模块, 免去手动模块的手误, 而且高效
学会使用 [ant start-debug] 或 [ant run-debug] 指令启动项目, 配合Eclipse调试 java/groovy 代码
学会使用 ftl(Freemarker) 标签中常用的 assign/if/list/?/. 等语句的用法
至此
第一本指南为的是认识OFBiz代码
第二本是根据图文真正的实现一套功能代码
第三本文档为的是了解OFBiz核心原理和逻辑实现结构
第四本是为了完整的回顾入门的过程, 并进一步深化对OFBiz的理解
入门结束, 你已经可以进行日常开发了, 基本问题都能解决了
那么, 赶紧干活吧!!!
新手常见问题
中文乱码
表设计了, 项目启动后没有
java代码请求不到
服务请求不到
新建的模块不能访问
Ftl代码着色
eclipse导入开发
eclipse开启debug调试
一台电脑上启动多个OFBiz
提示Theme皮肤没找到
怎么使用 Screen.xml 中的 set 构建 List / Map
怎么使用通用查找服务做条件查询
怎么接入短信接口
怎么接入支付宝支付
怎么接入微信支付
怎么接入QQ/微博 等账号联合登陆
poi 导入导出
全面进阶
虽然日常需求实现已经能胜任了
但是一旦有一些特殊点的需求时, 基础知识已经不能满足需求的变化
此时可能需要知道更高级的代码实现方案, 发现OFBiz已有而你不知道的功能或用法
此时你需要看官方提供的开发人员手册
[OFBiz开发指南-Ob4.0-EN[Apache-OFBiz-Development-The-Beginners-Tutorial].pdf]
此本书是以 OFBiz4.0 为基础编写的,
但是它依然适合最新版OFBiz的开发学习, 只是少量的地方有些不一样
由于项目开发为的是实现需求
而OFBiz本身就是一个业务框架,
它自带一套功能齐全的国际前沿的标准ERP业务代码
[OFBiz食谱(指南)-2010-EN-[Apache OFBiz Cookbook].pdf]
看这个 OFBiz Cookbook, 进一步的了解OFBiz的业务实现方式, 功能表现方式, 进而熟悉ERP业务
建议有兴趣有耐心的人同时参考翻看
[数据模型资源手册++卷1++林友芳(高清版).pdf]
这部业务代码的基础数据模型手册
根据分析, OFBiz几乎就是依照这本手册来实现ERP业务逻辑的核心数据表结构设计的
对业务有想法的人应该认真研读此手册, 充分理解表设计的核心思想
看表结构: 正在开发的项目运行起来之后, 打开下面的链接
[https://localhost:8443/webtools/control/entityref]
可以看到当前项目中所有有效的表结构介绍, 同时可以看到 view-entity 标签对应的视图结构说明
Tip: view-entity 对应的视图是OFBiz独有的, 不同于数据库支持的视图, OFBiz在最终只是生成一句联合查询的sql,
所以在Mysql数据库看不到它的结构和数据, 但是OFBiz自带的工具页面可以查看,
注意:不可直接在视图上做数据修改!
看表数据: 若项目运行着, 请打开下面链接
[https://localhost:8443/webtools/control/entitymaint]
目前OFBiz自带约 800+ 表结构, 包含 100+ 框架级核心表, 700+ 业务关系表
在上述链接中可以看到所有表的数据, 可以做表数据的 看表结构/新增/查找/查看/删除
目前来看
考虑到很多新人所在环境都想做电子商务或B2B2C平台
同时被OFBiz强大的框架结构和业务支持度所吸引
此时, 你需要进一步研究OFBiz核心代码, 可能还要做二次开发来满足公司的个性需求
[OFBiz的电子商务解决方案-EN-Ob11.04-hongs-[Apache OFBiz E-Business Solutions11.04].pdf]
这本 北京_hongs 编写的 电子商务解决方案 你一定要拜读,
它是基于 OFBiz11.04 版本截图分析的
全面分析了电子商务网站的实施过程
由于OFBiz使用了100%开源的第三方支持库
所以它涉及到了很多开源项目的引入, 同时支持多种用于业务实现的方案
如 Groovy的代码编写规范, 可以翻看
[Groovy in Action[文字版][中文].pdf]
如 Freemarker的标签使用及技巧, 可以翻看
[FreeMarker_Manual_zh_CN(2.3.19).pdf]
源码级的再次升华
需要熟悉常见文件内容编写及标签含义
初级
[entitymodel.xml]
[*Menus.xml]
[controller.xml]
[*Screens.xml]
[*Forms.xml]
[services.xml]
[*Uilabels.xml]
[*Data.xml]
进阶
[*.ftl]
[*.groovy]
[*scripts.xml] 又名 Mililang
[eecas.xml]
[secas.xml]
[mcas.xml]
[web.xml]
辅助
[component-load.xml]
[entityengine.xml]
[ofbiz-component.xml]
[entitygroup.xml]
[groups.xml] 这是 service 的
[serviceengine.xml]
需要了解部分核心java类的方法使用
[org.ofbiz.entity.Delegator] / [org.ofbiz.entity.GenericDelegator]
[org.ofbiz.service.GenericDispatcher] / [org.ofbiz.service.LocalDispatcher]
[org.ofbiz.entity.GenericValue]
[org.ofbiz.base.util.*]
[org.ofbiz.entity.condition.*]
[org.ofbiz.entity.util.*]
[org.ofbiz.security.Security]
[org.ofbiz.security.authz.Authorization]
可以调整部分核心功能
[start.properties] 项目启动配置
[url.properties] 项目访问参数端口等
[general.properties] 项目通用功能参数
[debug.properties] 项目日志记录级别设定
[cache.properties] 项目所有缓存的配置中心
[security.properties] 项目安全相关
[widget.properties] 项目显示方式配置, 默认 html 页面
至此, 你已经成为一个强人了, 去做你想做的事吧!!
附送个人学习心得
关注我的个人博客 [http://ofbizer.iteye.com/]
专题: OFBiz进阶 [http://www.iteye.com/blogs/subjects/ofbiz_learn-advance]
实战
根据实际项目需求设计数据结构, 独立完成CRUD开发
逐渐加大需求的复杂度, 强化数据结构组织能力
尽量使用框架自带的数据结构, 完成实际需求的实现
学习并参考框架自带业务实现思路和方案, 进化需求实现能力
尝试在项目中接入定制化的功能, 如: 支付/短信通知/富文本编辑器 等
尝试解读源码的设计风格和实现思路, 并演化成自己的
研发
看代码, 可以跟着页面请求, 一步一步跟踪代码, 达到需求导向实现
写⽤例, 根据实际需求的功能点, 自己动手写实例, 尝试实现业务
做笔记, 好记性不如烂笔头, 任何一个自己以前不知道的最好都记下, 防止以后忘记同时深化记忆
写实例, 将实际需求的功能点联合起来, 做成一个大的功能, 完善功能点衔接
看业务, 看框架自带业务的数据结构, 逻辑思路, 实现方式
用业务, 将实际的需求使用自带的业务结构来实现, 达到少量调整就可实现多种需求
技巧
认真学习并实现OFBiz开发文档内代码, 理解代码用法和含义
做好笔记, 技术点笔记, 功能点笔记, 可以做图文笔记
记录每一次遇到问题最终的解决方法, 总结问题原因和规避方案
善用关键字搜索 源码, 能更快更专心的研究源码业务, 推荐 sublime text 软件载入文件目录右键搜索
按实际需求做功能, 快速理解技术点, 业务功能
仔细分析框架自带业务的实现, 谨记项目是跟着业务走的
看看这个文件包够不够
不啰嗦, 本文涉及到的所有文件打包分享, 看不到? 你再试试!!!
链接: https://pan.baidu.com/s/1pMHIxYz#6666 密码: 6666