您的位置:首页 > 编程语言 > Java开发

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

2016-03-27 10:32 633 查看
有关之前实体类的设计参考我前面的博客:/article/9978908.html

项目文件已经放到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中将公共的增、删、改、查代码抽取出来了,可以参考我的这篇博客后面的说明:/article/9978907.html
又因为我们Service层经常会调用到增、删、改、查,这样Service层又要重新写一遍,然后再去调用Dao层,这样就重复了(当然这样没有问题),我们现在将业务层Service和Dao层放在一起,将BaseDao改名为DaoSupport,Service层继承DaoSupport即可





dao层就不需要了





直接在Service层通过getSession()方法查询数据库(getSession是DaoSupport中的,声明为protected类型,子类中就可以得到了)



(2)优化后的图示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: