》》1:ofbiz也有一个MVC的实现。C的配置在controller.xml,具体的实现是一个个的静态方法,可以对应为Struts里面的excuete()方法。大家是否可以讨论一下他这种实现和Struts实现的优劣。《《
我觉得static method和固定的继承对象两者没有太大的区别,也许有人说都用static方法有点违背OO的概念,我是觉得用framework写代码,好用,方便就可以了。ofbiz有一个比struts好的地方是它M的实现是通过handler实现的,这样就比struts有更好的扩展,而且它提供的现成几种event handler都很好用。
》》2:ofbiz V那一层的思想和Tiles是一致的,其实Turbine也有这种思想,非常可取,但实在是看的我头晕,如果要使用Velocity会不会好些?《《
在ofbiz2.1.1以后,它使用了jpublish[1], 是用script + template的一种架构,在ofbiz里提供的应用是beanshell [2] + freemarker [3](一种比Velocity更强大的模板语言).
结构还是蛮清晰的,找一个具体的流程对应看一下可以明白它的各个文件的作用。
缺点是要实现一个完整的event process -> view,要写满多的配制文件,有点麻烦,如果有工具可以自动生成就好了。
》》3:ofbiz 的Entity 实现有没有可能替代,就我目前的理解好象不大可能使用O/R Mapping 不知道谁有这方面的研究。《《
我最喜欢的就是它的Entity Engine的实现了,它本身就是一个O/R Mapping的实现,为什么还要找别的ORM来替换?它是一种使用简单(api少,配置文件少),而又功能强大的ORM tool。我们在各个项目中都使用应用得很好,强烈推荐使用(如果你需要Transaction支持的话,可以使用它的Service Engine的价格)
现在ofbiz有3.0 preview [4]了,和2.x最大的不同就是component化,你可以方便的plugin。如果你需要做一个完善的系统,ofbiz有很多地方可以借鉴。
[1] http://jpublish.org
[2] http://beanshell.org/
[3] http://freemarker.org
[4] https://ofbiz.dev.java.net