码迷,mamicode.com
首页 > 编程语言 > 详细

javaEE SSH框架 BaseAction的抽取以及其他方面代码优化

时间:2016-03-27 12:44:26      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

有关之前实体类的设计参考我前面的博客:http://blog.csdn.net/u013082989/article/details/50983650

项目文件已经放到Github上,欢迎大家Follow,star.地址:https://github.com/lawlite19/SmartEducation


一:抽取BaseAction
(1)先说一下ModelDriven的使用,比如用户登录,我想得到界面输入的用户账号userNum和用户密码password,可以在Action类中声明并实现get、set方法,对应到界面input的name属性一致,然后就可以得到(也可以在Action中声明一个User user对象,对应到界面input的那么属性写user.userNum,user.password也可以得到)
技术分享
使用ModelDriven后,界面中name属性对应到对象的属性
技术分享

可以直接在类中声明一个对象model,通过model.get()方法得到对象对应的属性即可。

技术分享
技术分享

(2)抽取BaseAction类,先说一下为什么要抽取,因为我们在每个Action中都要定义对应的对象model,我们可以抽取出来声明为泛型,通过反射得到对象的类型即可。
技术分享
还有就是每个Action中可能会重复用到的Service接口对象,我们也都在BaseAction中将用到的接口对象声明为protected类型(前几天刚好复试c++,复习了一下类的关系),只要继承BaseAction就可以得到父类的Service接口对象了。
技术分享

二:关于Dao层的调用代码优化
(1)因为之前我们在BaseDao中将公共的增、删、改、查代码抽取出来了,可以参考我的这篇博客后面的说明:http://blog.csdn.net/u013082989/article/details/50964133
又因为我们Service层经常会调用到增、删、改、查,这样Service层又要重新写一遍,然后再去调用Dao层,这样就重复了(当然这样没有问题),我们现在将业务层Service和Dao层放在一起,将BaseDao改名为DaoSupport,Service层继承DaoSupport即可
技术分享
技术分享
dao层就不需要了
技术分享
技术分享
直接在Service层通过getSession()方法查询数据库(getSession是DaoSupport中的,声明为protected类型,子类中就可以得到了)
技术分享
(2)优化后的图示:
技术分享


javaEE SSH框架 BaseAction的抽取以及其他方面代码优化

标签:

原文地址:http://blog.csdn.net/u013082989/article/details/50990250

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!