SPRING全应用供参习.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SPRING全应用供参习

SERVICE层编码规范 目录 1. 设计思想 2 1.1. 敏捷设计概念 2 1.2. 单一职责原则(SRP) 2 1.3. 开放-封闭原则(OCP) 2 1.3.1. 关键是抽象 3 1.4. 里氏代换原则(LSP) 3 1.5. 依赖倒置原则(DIP) 4 1.5.1. 层次化 4 1.5.2. 使用spring来应用该原则 4 1.6. 接口隔离原则(ISP) 6 2. Spring框架的使用 7 2.1. 容器 7 2.1.1. 配置元数据 7 2.1.2. BEAN的命名规范 8 2.1.3. 实例化bean 8 2.1.4. 配置文件bean属性详解 9 2.1.5. Bean定义的继承 10 2.2. AOP编程 11 2.2.1. 概念 11 2.2.2. Spring AOP的支持方式 11 2.2.3. Spring AOP使用例子(@AspectJ方式) 11 2.2.4. Spring AOP使用例子(context配置方式) 12 2.2.5. 切入点类型支持 12 2.3. 测试 13 2.3.1. 使用spring工具简化测试 13 2.4. WEB服务的应用 15 2.5. Spring中的定时调度 15 2.6. 事务处理 15 2.6.1. 使用CONTEXT配置声明式事务管理 15 2.6.2. 使用注解方式声明事务 19 设计思想 SERVICE层整个WEB系统中负责业务逻辑处理的一块,是最需要抽象的部分,这一层设计的核心就是复用性,和低耦合性,结合spring提供的依赖注入方式,让业务逻辑的处理的代码调用更方便 敏捷设计概念 敏捷设计是一个过程,不是一个事件,它是一个持续的应用原则,模式以及实践来改进软件的结构和可读性的过程。敏捷开发人员应该做到的: (1)他们遵循敏捷实践去发现问题; (2)他们应用设计原则去诊断问题; (3)他们应用适当的设计模式去解决问题 对于我们的营销系统,改进目前框架复杂,高耦合,低移植性的最佳方法就是抽象,在应用抽象的思想时,我们需要尽量的遵循以下几种设计原则: 单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。职责简单一些,复用更加轻松。 手机虽然可以拍照,但是效果很差。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,那就需要将类的职责分离。 在SERVICE的设计时,一个接口或者类一定要仅满足一个抽象的业务需求,如果有多于一个的时候,就需要把类拆分开来 开放-封闭原则(OCP) 本原则是说:软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本。 无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。 在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码——这就是开放封闭原则的精神所在。 关键是抽象 例如我们的划分功能,可能有多种划分方式,而根据不同的客户类型,可能会使用不同的划分方式,这时候我们就应该把划分方式抽象为一个接口,或者抽象类,这样我们使用时只通过接口来调用,而不关心具体实现,如果有新的划分方式我们只需要增加一个实现,而不需要再改变接口了 注意:以后如果有这种业务的不同方式,都应该使用抽象来调用,比如营销单的派单方式,维系挽留的不同预警类型,都应该使用抽象来设计 里氏代换原则(LSP) 白话:一个软件实体如果使用的是父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别[ASD]。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单地说,子类型必须能够替换掉它们的父类型。 只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。参见下面的代码: 动物* animal = new 猫(); animal-吃(); animal-喝(); animal-叫(); 如果需求发生变化,需要将“猫”更换成别的动物,只需要更改第一句即可,其它地方无需改变。这就是“面向接口编程”的好处。 依赖倒置,其实就是谁也不要依靠谁:除了约定的接口,大家都可以灵活

文档评论(0)

dart004 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档