jws-jpt 项目地址 http://code.google.com/p/jws-jpt/ 简单说就是一傻瓜型开发环境+模板,带有传说中的CRUD功能及COC零配置,做企业管理系统足够了,更远的什么osgi啦,分布式啦,soa啦暂不考虑,文档在整理中。
J (java) W (web) S (studio)是一个集成、绿色、简洁的开发环境。JWS通过集成 maven2, ant, eclipse 使开发环境变成全绿色,甚至jdk都无需安装。这样开发团队就可以通过直接拷贝JWS实现开发环境的统一配置,缩短了项目的启动周期,方便了团队新成员的加入。由于JWS只是通过批处理使用所集成工具的核心功能,所以可看作是这些工具的最小组合,避免了由于安装大量插件造成IDE臃肿庞大、启动慢、配置复杂等问题。通过自定义maven插件实现的代码生成操作,灵活方便可扩展。JWS已经历3个内部稳定版本,支持Java代码的编译、打包、调试、执行等,目前只有WIN32下的批处理脚本,随后会增加LINUX下的。
J (java&javascript) P (project) T (template)是一个maven项目模板。通过优化组合Spring2, Struts2, IBATIS, Acegi Security, Freemarker, urlrewrite, JSON, JST, jQuery等优秀开源项目实现Web应用快速开发。通过模板生成的代码包含了基本的CRUD操作及客户端&服务端校验,规范了什么代码应该写在哪里,一切基于简单约定,无需任何配置。
可以下载 jws-jpt默认生成的mytest项目 快速预览jws-jpt效果,下载后解压 mytest.rar,在<解压目录>/src/main/webapp/下是静态页面,同时也是DEMO,浏览 index.html 可以看到生成的功能,静态页面展示的与实际启动了Web服务器的效果完全一致,区别只在于静态页面的数据是写在.json文件中模拟数据。分页功能是默认都有的,mytest中只有用户信息的模拟数据符合分页条件,所以静态页面中只有在用户管理中可以看到分页控制。 Firefox下浏览静态页面会由于ajax的安全限制看不到效果,请使用IE6以上浏览器。注意不要阻止本地javascript的执行。
JPT所能解决的开发问题
- 客户端与服务端全解耦,使得静态DEMO挂上服务端就是实际系统,100%保证DEMO的完全重用,即最初的DEMO即是最终客户端,而模拟数据即是数据库设计的原型;
- Web与HTTP全解耦,使得更容易与非Web程序兼容;
- DAO与业务逻辑全解耦,真正体现D-A-O的实际职责。通过动态注入技术使得Service只在需要时才需添加;
- 完全意义的COC零配置,默认的配置几乎可以适用所有的逻辑,非常特殊的逻辑亦可单独配置;
- Freemarker与IBATIS的结合,简单而全面地封装了数据库差异,全面支持不同类型数据库,极大提高了SQL的重用程度;
- 类似REST的URL驱动的开发模式保证增加一个功能要做的只是“确定一个URL”,“写几个模型或叫VO类”,“写几个静态页面”,“写几条SQL语句”,而这些又都可以用自定义的maven插件从数据库或xml自动生成;
- 只需客户端技术和SQL技术即可完成绝大部分的应用逻辑,降低了对团队成员的技术要求,使任务更容易分配;
- 由数据库结构生成的默认代码,保证开发的规范性和代码结构的一致性;
- 只写真正需要的代码,全面平衡三层架构各层逻辑分布,去除各层之间传递性调用的尴尬;
- 优化组合spring2, struts2, ibatis, freemarker, acegi, urlrewite, json, jst, jquery等优秀开源技术,全面提高系统的兼容性和可扩展性;
- 默认实现了基于acegi security的用户管理,其中的资源缓存思想参考了springside,在此向其团队成员致敬。