摘要: 2.AOP应用举例在一般的应用程序开发中,有一些典型的AOP应用,使得开发者可以专注于业务逻辑本身,而不是与之完全无关的一些“方面”。l首先就是关于前面介绍过的日志输出类的功能,当然前面的例子非常简单,实际上要输出的日志信息中往往有很多的可变参数,这时就需要从被拦截对象的上下文中取出相应的信息进行行... 阅读全文
posted @ 2014-12-19 10:33 brave-sailor 阅读(382) 评论(0) 推荐(0)
摘要: 四、依赖注入对象的行为增强(AOP)前面讲到,依赖注入框架的最鲜明的特点就是能够提供受容器管理的依赖对象,并且可以对对象提供行为增强(AOP)功能,所以这一章我们来讨论有关AOP的话题。1.对依赖对象进行行为增强所谓AOP,就是Aspect Oriented Programming(面向方面的编程)... 阅读全文
posted @ 2014-12-19 10:32 brave-sailor 阅读(423) 评论(0) 推荐(0)
摘要: 2.生命周期管理各种依赖注入框架提供了替开发者管理各种Scope的便利功能,随之而来的就必然是被管理的依赖对象的生命周期管理的问题。所谓生命周期管理,就是一个对象在它所属的Scope中从被容器创建开始、到被提供给依赖者、再到最后的消亡这一整个过程中,依赖注入框架提供了一系列的回调方法的接口,使框架自... 阅读全文
posted @ 2014-12-19 10:31 brave-sailor 阅读(456) 评论(0) 推荐(0)
摘要: 1.2.Web开发中常用Scope简介这里主要介绍基于Servlet的Web开发中常用的Scope。l第一个比较常用的就是Application级Scope,通常我们会将一些贯穿整个EAR都会用到的常量定义、通用的服务组件、类似DBConnection连接创建等比较消耗资源的组件等等放到这个Scop... 阅读全文
posted @ 2014-12-19 10:30 brave-sailor 阅读(753) 评论(0) 推荐(0)
摘要: 三、依赖注入对象的Scope及其生命周期在前面的章节我们讲到,依赖注入容器之所以能够区别于以往的ServiceLocator等容器,是在于其不但能够自动构建多层次的、完整的依赖关系图,并且可以管理依赖对象的Scope和对其进行行为增强。有关行为增强的话题我们会在下一章介绍,这里我们先来看看有关依赖对... 阅读全文
posted @ 2014-12-19 10:28 brave-sailor 阅读(1479) 评论(0) 推荐(0)
摘要: 2.3.混合请求模式上一节讲到了FQCN(全类名)请求模式会带来依赖定义的柔软性较差的问题,因此字符串和全类名混合的模式又应运而生了。比如刚才的Spring中的API方式声明注入点的例子就可以改为使用下面的API:// Spring的字符串+全类名注入的APIBeanFactory injector... 阅读全文
posted @ 2014-12-19 10:25 brave-sailor 阅读(291) 评论(0) 推荐(0)
摘要: 2.2.FQCN请求模式为了弥补纯字符串请求模式中的类型安全问题,全类名(FQCN)请求模式就应运而生了。其思想便是,在向容器请求依赖对象的时候,不是通过字符串的标识符、而是通过被请求的依赖的全类名来定位依赖。这样如果开发者误将全类名标识符写错的话,在编译时立即会提醒“类不存在”。并且,如果使用Ec... 阅读全文
posted @ 2014-12-19 10:14 brave-sailor 阅读(770) 评论(0) 推荐(0)
摘要: 2.依赖注入对象的请求模式前一节我们讨论了关于声明注入点的几种方法,这一节主要来介绍在注入点上如何定位到所需要的标识符的话题。基本上,我们可以用字符串为标识符来请求依赖对象、或者用全类名(FQCN)为标识符来请求依赖对象、或者用两者混合的模式。下面我们来依次介绍。2.1.字符串请求模式顾名思义,字符... 阅读全文
posted @ 2014-12-19 10:13 brave-sailor 阅读(489) 评论(0) 推荐(0)
摘要: 二、依赖注入的应用模式前面我们了解了依赖注入的基本概念,也对一些依赖注入框架进行了简单的介绍,这一章我们主要来讨论作为开发者如何利用依赖注入框架来实现依赖注入的设计思想。1.依赖注入的方式前面我们提到,所谓“依赖”,最简单地去解释就是一个Java类里的成员变量。我们都知道,给一个类中的私有成员变量赋... 阅读全文
posted @ 2014-12-19 10:12 brave-sailor 阅读(1049) 评论(0) 推荐(0)
摘要: 3.2.“好莱坞原则”看了前面关于依赖注入概念的描述,我们来提炼出依赖注入的核心思想。如果说传统的组件间耦合方式,例如new、工厂模式等,是一种由开发者主动去构建依赖对象的话,那么依赖注入模式则是其反向的,即被动地等待别人做好一个依赖对象提供给我。在美国好莱坞众多电影工厂在寻找演员的时候通常奉行着这... 阅读全文
posted @ 2014-12-19 10:11 brave-sailor 阅读(1065) 评论(0) 推荐(0)
摘要: 3.“依赖注入”登场于是诸多优秀的IT工程师开始想出了更加轻量便利、更加具有可测试性和可维护性的设计模式——IoC模式。IoC,即Inversion of Control的缩写,中文里被称作“控制反转”。至于为什么会有这么一个看似古怪的名字,我们稍后会做解释。2004年著名软件工程学者和工程师Mar... 阅读全文
posted @ 2014-12-19 10:10 brave-sailor 阅读(695) 评论(0) 推荐(0)
摘要: 2.2.工厂模式基于手工构建组件的诸多弱点,1995年“大师4人组”(GoF)在其经典著作《DesignPatterns》一书中提出了“工厂模式”,这种模式在一定程度上有效的解决了之前所遇到的问题,时至今日仍然被大量应用于软件工程的设计当中。我们先来看之前的例子,首先来创建一个银行工厂和一个存折工厂... 阅读全文
posted @ 2014-12-19 10:08 brave-sailor 阅读(612) 评论(0) 推荐(0)
摘要: 一、入门:依赖注入作为一种全新的设计模式理念,“依赖注入”这个词汇在软件设计开发中已经是越来越耳熟能详了,而各种流行于开源社区的“依赖注入框架”,也越来越多的被当作软件工程开发过程中使用的基础框架。这一章我们主要介绍什么是依赖注入、它的来源是什么、以及能给我们带来什么样的好处。1.“依赖”的概念要了... 阅读全文
posted @ 2014-12-19 10:06 brave-sailor 阅读(1539) 评论(0) 推荐(0)
摘要: 英文原文:10-object-oriented-design-principles 面向对象理论是面向对象编程的核心,但是我发现大部分 Java 程序员热衷于像单例模式、装饰者模式或观察者模式这样的设计模式,而并没有十分注意学习面向对象的分析和设计。学习面向编程的基础(如抽象,封装,多态,继承等... 阅读全文
posted @ 2014-12-19 09:57 brave-sailor 阅读(311) 评论(0) 推荐(0)
摘要: IOC(inversion of control)控制反转在我们的程序中,要实现某个功能,我们都会用到两个或两个以上的类来协同完成,那么在一个类中,我们就会要有它的合作类的引用,也就是说这个类依赖于别的类,这个合作类的获取,将会有一下几种不同的情况依赖获取的三种方式:Java代码情况1.自己生成Cl... 阅读全文
posted @ 2014-12-19 09:55 brave-sailor 阅读(263) 评论(0) 推荐(0)