刚到一个新的项目组,项目采用常规的SSH架构,还处于初期阶段。项目分层是:
JSP-->Action-->Service-->DAO--->Entity--->DB Table
一般情况是一张表或视图,往往会对应一个Entity,然后针对这个Entity会有一个DAO Bean来维护,DAO也会有一个相应的Service Bean,最后由Action来调用。这样一来,似乎很麻烦,因为我们还需要做很多事情:
1.Entity映射,一张表需要一个hbm.xml文件;
2.在Hibernate配置文件中注入需要维护的Entity 所有hbm.xml文件;
3.在Spring中配置DAO Bean;
4.在Spring中配置Service Bean,同时还需要配置引用的DAO ref;
剩下就是Action Bean及调整配置了;
鉴于此,很多地方配置改用Annotation方式,比如Entity与表的关联,属性与表字段关联,DAO和Service也采用Annotation,甚至连struts2的调整也用Annotation...,似乎感觉到Annotation的泛滥了,这样的确是方便了很多,甚至可以0配置;但也带来了问题,导致没有一个全局性的文件来查看页面流程跳转,业务组件的依赖,感觉项目的可维护性变差;
因此决定对其做一定的改造,Entity用Annotation,用packageToScan简化配置,针对Service和DAO层,则有如下种想法,
想法一:
1.整个项目只采用一个泛型DAO, 泛型机制只用于方法,因此有别于BaseDAO<T, PK extends Serializable>这样的DAO。这样的DAO已经写好,支持简单的CRUD及复杂查询,包括自定义查询(结果返回可自定义);
2.再些一个通用的BaseService组件,注入BaseDAO,提供常规的CRUD方法,作为父类;然后其他业务类直接继承即可;
优点:1.不需要做繁琐的DAO Bean配置,因为只有一个BaseDAO,仅配置一次即可;
2.针对Service Bean也仅需做简单的配置,而无需配置DAO ref(因为在父类已注入);
这样一来,代码量和配置大大减轻。
缺点:还是需要为为一个Service Bean做配置。
想法二:
1.整个项目只采用一个泛型DAO;
2.提供一个强大的BaseService,重写Struts Action父类,将BaseService注入,推荐项目组只用这一个BaseService,不建议项目组为每个业务对象写一个类;如果有BaseService不能满足的,就在action中提供一个private来方法,封装业务。
优点:1.服务层类会大大减少,一定程度上减少代码量,同时更简化了服务层配置;
2.action的配置也简化,不需要为每个action配置Service的ref,因为已经重写父类,在父类中已注入;
缺点: action中代码量会有所增加,因为有些BaseService不能提供的,需要在action中写业务代码。
不知道采用方法一好还是方法二好,大家给我点意见吧,
同时针对方法一和方法二,大家感觉有不好的地方和改进意见也说下吧,欢迎板砖!
分享到:
相关推荐
示波器有两种主要的触发模式:自动(AUTO)模式和常规(NORMAL)模式。不过,常规模式不是通常使用的触发模式。自动模式才是。目前所有的示波器中,默认的触发模式都是自动模式。现在示波器用户对于使用哪种触发模式...
html常规学习html常规学习html常规学习html常规学习html常规学习 html常规学习html常规学习html常规学习html常规学习html常规学习 html常规学习html常规学习html常规学习html常规学习html常规学习 html常规学习html...
小学一年级是孩子正式接触正规教育的起点,这个阶段的常规教育尤为重要,因为它为孩子的学习习惯、行为规范和社会适应性奠定了基础。以下是对这份"小学一年级新生入学常规教育PPT课件"中的主要知识点的详细解释: 1...
值得注意的是,天然气水合物作为一种非常规油气资源,在中国也迎来了商业开采方面的突破。2017年5月,中国在南海神狐海域首次成功实施了天然气水合物试采,连续产气超22天,平均日产约8,350立方米,这不仅证明了中国...
在信号处理领域,常规波束形成(Conventional Beamforming,简称CBF)是一种重要的技术,主要应用于雷达、声纳、无线通信以及医学成像等多个领域。它的主要目标是通过智能地合成多个传感器接收到的信号,来提高信号...
常规应急物资-常规应急物资系统-常规应急物资系统源码-常规应急物资管理系统-常规应急物资管理系统java代码-常规应急物资系统设计与实现-基于springboot的常规应急物资系统-基于Web的常规应急物资系统设计与实现-...
本文档主要介绍了医技科室诊疗常规的知识点,涵盖了影像医学操作常规、登记室常规、CR 摄影常规、激光打印机操作常规、激光胶片使用常规、CT 操作常规等方面的内容。 一、影像医学操作常规 1. 医技科室诊疗常规...
常规应急物资-常规应急物资系统-常规应急物资系统源码-常规应急物资管理系统-常规应急物资管理系统java代码-常规应急物资系统设计与实现-基于springboot的常规应急物资系统-基于Web的常规应急物资系统设计与实现-...
通过这样的仿真,工程师和研究人员能够深入理解常规波束形成的工作原理,优化算法参数,以及在实际系统中预估性能。这对于通信系统的设计和优化具有重要意义,特别是在有限硬件资源下需要最大化传输效率和抗干扰能力...
宋体 cs 常规 chinese gb2312 宋体cs下载 宋体cs chinese gb2312下载
MATLAB 程序实现常规波束形成 本文将详细介绍 MATLAB 程序实现常规波束形成的过程,并对其中的关键步骤进行解释。 首先,程序开始时,我们需要清除所有变量和图形,使用 `close all` 和 `clear all` 命令。然后,...
【石化行业:非常规油气勘探获突破,国产油气开发进程提速】 近年来,我国石化行业取得了重大的技术进步,尤其是在非常规油气资源的勘探与开发上。2019年9月29日,中石油宣布在鄂尔多斯盆地长7生油层内以及四川盆地...
小学新教师教学常规岗前培训PPT教案详细解读 教学常规是教育工作者特别是新入职教师必须掌握的基础工作规范,它涵盖了教学工作的各个环节,确保...通过这样的岗前培训,新教师将更好地适应教学岗位,提升教学质量。
疼痛科常见疾病护理常规护理常规.doc