struts2+ibatis+json实现快速java web2.0程序开发
用struts2基本上做完了公司的一个项目,程序开发完以后总是总结一下的,之前的方案是struts2+spring+dwr这三种框架的组合,数据库操作用的Spring中的JdbcTemplate,一直对Hibernate不喜欢,以前在Hibernate 2的时候用它总报out of memory错误,可能H3的性能要比2好一些,但是从本质上来讲它把数据库操作的SQL都给封装起来了,用户的控制权受限,想写点特殊的SQL太麻烦,所以就一直在用JdbcTemplate。
上周领导要求尽快开始下一个项目的开发工作,虽然按老的框架组合去开发是轻车熟路,但是还是让组内的弟兄们研究了一下有没有更快的方式去干活,目前技术预研的结果是struts2+ibatis+json,抛弃了dwr,用上了ORM,用json插件实现ajax效果。以前方案的代码文件组合是:
1.一个struts2的action类,spring配置文件中写若干行bean的定义,struts2中写若干行配置.
2.一个DAO接口,一个DAO实现类,一个实体bean的定义,spring配置文件中写若干行DataSource注入以及事务配置等.
3.一个DWR类,处理ajax,同样,spring中写若干行配置参数,dwr.xml文件中再写若干行
4.前台若干个jsp文件
为了省事,没有单独的业务处理类,在struts2的action中就做业务逻辑处理了,这样就算是一个基本的带有ajax效果的crud操作页面就要5个java文件和若干jsp文件,xml配置参数最少8行左右,分的层自认为还算清晰,开发效率一般。
现在再做新项目时,将用是struts2+ibatis+ajax+json组合,ibatis有for Eclipse的插件,DAO接口,实现类,实体类以及配置参数直接生成,最主要的是ibatis操作数据库时的SQL语句可以自己控制,提取前N行,排序,分页等等直接在写SQL就行,粉爽,看程序员杂志介绍,淘宝也在用ibatis,还是有一定的道理的。
好了,现在数据库操作层的东西基本上不用花太大的精力去敲代码了,再看一下ajax操作这一层,以前是用dwr框架,这次想把dwr去除,直接用struts2就得了,服务器端用struts2的jsonplugin,action可以直接返回json格式的结果给前台展示层,前台随便用protoTypejs或dojo或者干脆自己写个几十行的ajax请求js类去处理json数据就行了。
现在要做一个数据展示时,ibatis直接返回一个List包含实体类的列表,struts2配置好json返回格式给前台,前台处理json数据显示,简简单单,俺的小弟们搞这个研究还是做的很棒的,分页、数据库查询条件等等稍微封装一下效果很好。
编辑数据时前台通过json直接向action中提交数据后,action中直接对实体类操作就行了,不用从request对象中去手动的取什么东西,数据提交过来就已经填充到实体类中去了,再用ibatis处理一下数据库操作,哇,爽。
当然现在不写spring的配置参数还是不行,这一点还是比较烦人的,没啥技术含量,数据录入错误的话也没个提示,只能在运行时才能看出来。