JavaEE 新玩法
来源:互联网 发布:淘宝买家如何升级星级 编辑:程序博客网 时间:2024/04/30 11:27
提起JavaEE应用,大多数技术工作人员都会想到标准的JavaEE组件(WEB CONTAINER+EJB CONTAINER),喜欢开源软件的同学马上就会想到MyS2SH(MyBatis+Struts2+Spring+Hibernate),今天这里介绍一个新的开发平台 - XWIKI。由于各种WIKI平台在国内用户较少,咋一接触这个平台的人还真的不知道怎么下手,毕竟像对于传统的MIS-like的软件开发,很多概念发生了变化,开发以及使用的基础组件技术和程序结构与传统应用也有很大的不同。
首先对于数据的定义,传统方式首先从数据库设计入手,在XWIKI开发平台中,数据的定义被抽象成XWIKICLASS对象,您只要想定义传统的数据表那样定义,您的CLASS的属性就可以了;XWIKI提供了丰富的数据结构类型。
然后定义您的数据展示XWIKICLASSSheet, 数据-展示通过定义的XWIKITEMPLATE对象做关联。
从XWIKI的名字上,您可能也猜到了,WIKI是面向文档的应用平台,主要用于在CLASS定义的文档数据结构展示,开发方式也是多种多样的,对于简单的应用,使用简单的内置的XWIKI脚本(主要是内部数据的提取,文档状态的控制[编辑,浏览等状态])就可以了,对于逻辑控制,借助Apache Velocity[现在来看不是很时髦的技术]提供数据逻辑处理;当然对于数据的传递,内置的标准的HttpServletRequest,HttpServletResponse提供了参数的传递和接收; 前端应用,提供了标准的PrototypeJS, JQUERY支持。基本上借助这些,开发一个简单的基于文档的应用是很方便的,开发效率也是比较高的,只需要编写脚本就可以了,开发环境就是平台本身。
但是基于这种架构开发的应用由于大量使用了各种各样的脚本,使得处理复杂业务的逻辑封装重用变得很困难,代码的冗余度非常的高,虽然XWIKI也提供了MACRO技术来降低代码的冗余,更是增加了代码的复杂度,使得维护越来越困难。好在XWIKI提供了Component技术,可以把复杂的业务逻辑封装起来(一次编写,多次调用的方式降低代码的冗余),借助这种技术也可以方便的集成其它的应用。 不好的一面,开发人员需要一定的JAVA开发技能。
但是在实际应用中,并没有想象的这么顺利:
1。思想转变,开发基于文档的应用跟数据处理的应用概念上有很大的不同
2。需要熟悉新的开发平台
3。需要熟悉新的开发环境
4。需要熟悉各种脚本(内置对象)以及脚本之间的交互
5。现实项目往往需要深度的定制开发(个性化)
学习的曲线还是比较陡的,但是一旦学习掌握,还是不错的利器。
在实际的应用中,从资源的获取上来看,第二种方式比较好一些,对后端的组件编写人员只需要掌握JAVA以及相关规范构建后端的MVC,前端脚本人员构建前端的MVC将数据优美的展现给用户;毕竟精通全部技术的开发人员还是不多的(开发和设计的思维也是不同的),前后的数据交互还是老方法,JSON,XML都可以。
最后,XWIKI自身基于SSH开发,您也猜到了,使用传统的技术来开发也是OK的(也可以继续集成流行的JavaEE框架来丰富后台应用),但是数据库(MYSQL,PSQL...)的数据存储采用了列式存储,不借助内置的对象,访问数据库将是一个大麻烦。对于前台,基于独立组件技术的JS框架也是很容易集成到系统中的,比如EASY-UI, EXT;当然对于AngularJS(BOOTSTRAP)就有困难了,:),因为ng要组合到定制的现有平台的脚本中,几乎不可能。
官方的网站上有大量的资料和开发指南,有兴趣的童鞋可以试试,:),有点意思。
0 0
- JavaEE 新玩法
- 街机游戏新玩法
- 墨迹天气新玩法
- 淘宝新玩法
- Xcode8一些新玩法
- 游戏新玩法之恋人玩法
- 移动医疗的新玩法
- 4G手机新玩法
- 全民营销的新玩法
- VR新玩法:戒毒挺靠谱
- Android Shape一些新玩法?
- Ajax新玩法fetch API
- 【新媒体】现阶段新闻聚合的玩法
- 【新媒体】现阶段新闻聚合的玩法
- 【新媒体】现阶段新闻聚合的玩法
- 【新媒体】现阶段新闻聚合的玩法
- 地理位置服务带来多少新玩法
- android设置控件属性 新玩法
- Nexus7安装NetHunter笔记
- HDU 1874 畅通工程续(最短路)
- Convolutional-Neural-Network (CNN)框架详解
- HDOJ 5358 First One 暴力
- 花生壳+tomact 将个人电脑搭建服务器
- JavaEE 新玩法
- (一一一)图文混排基础 -利用正则分割和拼接属性字符串
- Java 插件工程开发的概念
- 字符序问题(1)
- Java集合和数组的排序方式总结
- 第79讲:单例深入讲解及单例背后的链式表达式学习笔记
- python select模块实现并发
- 1371 - Period
- volatile、ThreadLocal、synchronized等3个关键字区别