浏览 1562 次
锁定老帖子 主题:BLH结构分析
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-12-03
入参:RequestEvent 出参:ResponseEvent 业务接受者:FacadeGateWayService 业务处理类:***BLH extends BaseBizLogicHandler 业务处理代理类:BizDelegate 职责: RequestEvent:构造函数(BLH名,方法名),可设置请求来源(渠道类型),用户ID,事务类型,地区代码, BizDelegate:将RequestEvent发送至FacadeGateWayService(可配置为本地或远程的FacadeGateWayService) 在这里记录日志(比如耗时,等),统一异常、错误码的处理 FacadeGateWayService:需注入dbsessionFactory,事务处理,异常记录,调用BaseBizLogicHandler.execute(RequestEvent req, CTPDBSession ss)处理RequestEvent BaseBizLogicHandler:统一处理验证(意义不大);运用spring代理技术,记录每个dao方法的访问时间 ***BLH:业务处理类的每个方法,作为一个业务单元,处理RequestEvent ***DAO:数据库操作; 优点:降低了controller到biz层耦合;测试简单;能够监控系统的性能;追踪用户访问时系统的性能瓶颈; 在系统逐步扩张为多种接入渠道(如:手机、web、终端等)时很适用; 在controller到biz层的业务参数经常变化或需统一调控的情况下很适用。 业务模块独立性强的情况下适用; 适用于垂直业务开发; 缺点:设计理念导致blh复用不理想;blh调blh会出现事务不一致问题;反射的性能问题;开发效率不高;blh重构不方便;多数据源支持不是很方便。 改进建议:blh、dao做成单例解决性能问题,使用ThreadLocal解决事务问题,适当的情况下增加配置式的sql或者增加mybatis的支持。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |