《Spring与服务层》PPT课件.ppt
《《Spring与服务层》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Spring与服务层》PPT课件.ppt(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Spring框架高级开发工程师培训框架高级开发工程师培训中程在线(北京)科技有限公司内部教程注意保密第5章 Spring与服务层学习内容学习内容什么是服务层Sprng的事务管理什么是服务层什么是服务层?初学者对于服务层究竟干了什么,是否有必要设计一个服务层出来等问题不理解。服务层是系统的核心业务处理层,负责接收表示层的指令和数据,根据业务逻辑的需要调用相应的持久层,并将结果返回给表示层。如图5.1所示初学者对于服务层的疑问?初学者对于服务层的疑问?服务层是由一些负责处理业务功能Bean构成的。很多初学者对业务功能Bean提出了如下问题:业务功能Bean如何划分?业务功能Bean方法如何设计?业
2、务功能业务功能BeanBean如何划分?如何划分?有一个网上商城的用例图5.2。这样业务功能可以分成五个模块,按照五个模块你可以设计出五个业务功能Bean。业务功能业务功能BeanBean方法如何设计?方法如何设计?关于这些业务功能Bean中有哪些方法。这些Bean中的方法应该按照业务功能划分的。我们在需求分析的时候对用户的功能进一步细化,就可以得到若干个业务方法了。例如:我们可以对用户登录的功能细化到图5.3所示细化的用例图。这样这个Bean就可以有两个业务方法:登录注销和登录注册。小结小结在处理业务的方法的时候不要简单的认为业务方法中一定有复杂的业务逻辑,而只有一行代码方法不属于业务逻辑,
3、这种看法是错的。业务方法中的业务逻辑与代码多少是没有关系的。实际上,把持久化代码从业务服务层剥离到持久层以后,服务层已经不是那么臃肿,代码量会大大减少的。在能够满足用户需求的情况下,代码越少当然是好事,我们为什么要害怕呢?!还有另外一个极端有些初学者把业务逻辑处理不是放到服务层而是放到了Web层,这也是不对的。例如:我们登录验证处理代码我们应该放在一个服务层的Bean中,而不是放在Web层的JSP或Servlet中,Web层应用遵守轻薄的原则服务层的例子服务层的例子为用户登录的功能模块进行添加服务层。功能描述:当用户登录的时候,我们需检查用户的合法性,如果是合法用户,而且登录标志是1(没有人登
4、录),则可以登录,并且设值登录标志为0(已经登录),即同一时间段一个用户帐号不能被多人使用登录系统。当用户注销的时候,我们将用户的登录标志设值为1,即代表没有人使用这个帐号登录。0 代表已经登录1 代表没有登录。数据库中的表是t_user设计如图5.4所示。业务领域对象User设计如图5.5所示。User.hbm.xmlUser.hbm.xml映射文件映射文件UserLoginImpl.javaUserLoginImpl.java完整的服务层代码完整的服务层代码applicationContext.xmlapplicationContext.xml配置文件配置文件依赖关系图依赖关系图 JUni
5、tJUnit测试,运行结果错误!测试,运行结果错误!原因原因经过分析得知Hibernate的Session已经关闭,惰性加载初始化异常。由于在Spring中我们使用了HibernateTemplate,所有Session的管理是由Spring的框架管理了。我们无法根据需要关闭或打开Session,所以惰性加载应该设定为关闭(lazy=”false”),将User.hbm.xml映射文件设值为lazy=”false”就可以了修改之后的User.hbm.xml映射文件如清单如5.4所示。小结小结综上所述,业务服务层的业务功能Bean一般情况下是按照业务功能模块划分的,业务功能Bean里面的方法是业
6、务功能模块的细化。这只是一般的原则,不是绝对不变的,希望大家灵活掌握。Spring的事务管理什么是事务什么是事务?在整个一个登录业务流程中,与数据库有关的有5个步骤,如果第4步的时候失败了,第5步就没有意义了。它们的特点“要么全部成功,要么全部回滚”。这就是事务的原子性。大部分初学者在学习数据库的时候,经常提到事物的概念,在学习数据库时候事务一般被介绍为一组SQL操作的集合。在学习数据库时候这样理解没有问题。但是开发应用系统的时候,应该站在整个业务流程的角度来理解事务,一个完整的事务应该是一个完整的业务流程,这样理解应该更准确一些,因为应用系统所说的事务除了数据库中的事务还包括消息事务等等。而
7、且在业务流程的描述中提到SQL语句是不合适的。J2EEJ2EE中事务中事务 局部事务和分布式事务。局部事务局部事务局部事务由数据库管理的事务,JDBC通过Connection实现的,采用了HibernateORM技术是通过Session实现事务的管理,但是只能处理一个数据库的事务。分布式事务分布式事务分布式事务,对数据库的操作可以跨多个不同的数据库的,例如:在商场刷卡消费,我们的银行帐户(中国银行数据库),由于消费了100元,就要在我们的银行帐户中扣除“消费金额”100元,再把这个“消费金额”100元累计到商场(商场帐号在工商银行数据库)“应收金额”上的时候,这两个数据库不同的不可能用一个Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring与服务层 Spring 服务 PPT 课件
限制150内