版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目案例5“e拍”在线拍卖系统(四) 问题描述使用Spring Ioc功能组装之前的程序给原有程序在Biz层添加事务支持使用Spring对DAO层的支持开发BidDAOHibimpl完成“出价”、“我的宝贝”列表和成交功能采用AOP的方式,实现系统日志功能,包括业务日志和异常日志。问题分析-1使用Spring Ioc功能组装之前的程序:取掉原代码中直接创建要引用的类的实例的代码增加注入属性的getter/setter方法编写Spring配置文件,通过注入方式管理类间的依赖关系,使用Spring Bean工厂创建类实例通过Spring和Struts的集成,可以将Action也通过Spring管理
2、起来问题分析-2各层间依赖关系 :问题分析-3在Biz层添加事务支持业务需要在Biz层加事务支持,而不是DAO层去掉原系统中事务控制的代码通过Spring声明式事务统一管理事务问题分析-4使用Spring对DAO层的支持,开发BidDAOHibimpl DAO层基层自HibernateDaoSupport使用super.getHibernateTemplate() 完成持久化操作注入sessionFactory到DAOpublic void del(Serializable key) super.getHibernateTemplate().delete(super.getHibernateT
3、emplate().get(Bid.class, key);public List search(Bid condition) List ret = super.getHibernateTemplate() .findByExample(condition);return ret;问题分析-5实现以下功能:出价需要传入商品、买家和所出价格参数我的宝贝列表成交选择一个出价成交(bid.do?operate=doBid&bid_id=$bid.bidId)需要做事务控制问题分析-6采用AOP的方式,实现:系统业务日志Advice实现AfterReturningAdvice系统异常日志Advice实
4、现ThrowsAdvice通过代理访问target对象难点分析-1组装“继承”关系BaseJdbcDAO和UserDAOJdbcImpl间是继承关系通过bean的parent属性进行组装不需要增加getter/setter方法HibernateSessionFactory创建org.springframework.orm.hibernate3.LocalSessionFactoryBean类型的SessionFactory不再采用HibernateSessionFactory阶段划分第一阶段:组装之前基于Jdbc的程序(30分钟)第二阶段:组装之前基于Hibernate的程序( 25分钟)第三
5、阶段:给Biz层添加事务支持(30分钟)第四阶段:使用Spring DAO 支持开发BidDAOHibimpl (30分钟)第五阶段:开发“出价”功能(30分钟)第六阶段:开发“我的宝贝”功能(25分钟)第七阶段:开发“成交”功能(30分钟)第八阶段: 使用AOP添加系统业务日志(30分钟)第九阶段: 使用AOP添加系统异常日志(30分钟)第一阶段第一阶段(30分钟)组装之前基于Jdbc的程序 要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第一阶段抽查学员的操作结果教员给出点评或集中演示难点部分第二阶段第二阶段(25分钟)组装之前基于Hibernate的程序 要求学员自己动手编
6、写代码,教员巡视,解答学员提出的问题阶段检查针对第二阶段抽查学员的编码结果教员给出点评或集中演示难点部分第三阶段第三阶段(30分钟):给Biz层添加事务支持 要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果教员给出点评第三阶段标准代码演示Spring声明式事务bean id=transactionManager . . 第四阶段第四阶段(30分钟):使用Spring DAO 支持开发BidDAOHibimpl 要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第四阶段抽查学员的编码结果抽查学员编写的完整代码教员给出点评第四阶段标准代码
7、演示-1BidDAOHibimpl代码public class BidDAOHibimpl extends HibernateDaoSupport implements BidDAO public void add(Bid item) super.getHibernateTemplate().save(item);public void del(Serializable key) super.getHibernateTemplate().delete(super.getHibernateTemplate().get(Bid.class, key);public Bid get(Serializ
8、able key) Bid item = (Bid)super.getHibernateTemplate().get(Bid.class,key);return item;. .第五阶段第五阶段(30分钟):开发“出价”功能 要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第五阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第五阶段标准代码演示BidBiz接口public interface BidBiz /* * 出价状态:正常 */public static final int BID_STATUS_NORMAL = 1;/* * 出
9、价状态:被货主确认成交 */public static final int BID_STATUS_DEAL = 2;/* * 添加出价 */public void addBid(Goods goods,User buyer,double price);/* * 成交 */public void deal(long id);第六阶段第六阶段(25分钟):开发“我的宝贝”功能 要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第六阶段运行效果演示-1我的宝贝第七阶段第七阶段(30分钟):开发“
10、成交”功能 要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第八阶段第八阶段(30分钟):使用AOP添加系统业务日志 要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第八阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第八阶段标准代码演示LogAdvicepackage y2ssh.zhangcuishan.xmal5.aop;public class LogAdvice implements AfterReturningA
11、dvicepublic void afterReturning(Object returnValue ,Method method,Object args,Object target) throws Throwable System.out.println(业务日志n 时间: + new Date() + n 业务类: + target.getClass().getName() + n业务方法:+ method.getName()+ n 参数:+ printArray(args) + n 返回值:+ returnValue);private String printArray(Object a
12、rgs)String s = ;for(Object o : args)s += o.toString();return s;.GoodsBizlogAdvice第九阶段第九阶段(30分钟):使用AOP添加系统异常日志 要求学员自己动手编写代码,教员巡视,解答学员提出的问题阶段检查针对第九阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评第九阶段标准代码演示异常日志public class ExceptionAdvice implements ThrowsAdvicepublic void afterThrowing(Method method,Object args, Object target,Throwable subclass)System.err.println(异常日志n 时间: + new Date() + n 业务类: + target.getClass().getName() + n业务方法:+ method.getName()+ n 参数:+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 35711-2017高压直流输电系统直流侧谐波分析、抑制与测量导则》
- 深度解析(2026)《GBT 35586-2017云制造 服务分类》
- 深度解析(2026)《GBT 35407-2017基于ebXML的补货建议》
- 《DLT 910-2004灰渣脱水仓》(2026年)合规红线与避坑实操手册
- 解剖试题题库及答案
- 编辑部下半年工作计划
- 摄影后期修图试卷及分析
- 学校办公室卫生要求细则
- 算力基础设施模块化建设实施方案
- 市政给排水管道题目及分析
- 挖基础承台协议书
- 2025春季学期国开电大本科《西方行政学说》一平台在线形考(任务一至四)试题及答案
- 保险投诉处理实务培训
- 2025年航天知识竞赛题库及答案
- 食堂食品追溯管理制度
- 智能化处方权审批流程解决方案
- 2024年上海市中考满分作文《我也是个取水人》19
- T-BCNJX 2416-2024 贡菜病虫害绿色防控技术规范
- 8.1 课时3 煤、石油和天然气的综合利用 课件 2024-2025学年高一下学期化学人教版(2019)必修第二册
- 2025年五类人员考试题及答案
- 风电工程总承包EPC项目实施方案
评论
0/150
提交评论