- 浏览: 99334 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xqxmh:
哈哈哈哈哈哈
12月编程语言榜单公布 C#等评级创新高 - CSDN新闻 -
niechanggang:
这个图片很是形象,linux也来祭奠了。。
【转】悼念一个伟大的公司——Sun - CSDN新闻
假设有两个 JavaBean,A和B,若A中调用了B,通常情况下是通过new创建一个B对象,但使用spring之后,可以将B作为A的一个属性,设置set方法,同时在spring配置文件中对B进行实例化。
这样做将B的实例化从具体的对象转移到了容器中。
以来注入的好处可以这样讲,若因为需求变更,A不需要使用B了,改用C了,若不使用依赖注入,则需要修改A程序并需要重新编译,而若使用依赖注入,在A编码时,将B抽象成一个接口,并将该接口作为A的一个属性进行使用,在具体的A程序实例化时,通过配置文件指定需要具体使用的bean即可。下面转载的文章更形象的说明了这种好处。http://tech.ddvip.com/2008-11/122794102996162.html
配置文件是struts核心的一部分,许多人都不喜欢使用配置文件,我也是其中一个。记得刚开始接触struts的时候,对它的配置文件实在是很烦,但慢慢地,了解了配置文件的作用之后,就喜欢上使用配置文件了。配置文件在项目中的作用是毋庸置疑的,在大型的项目中尤其重要。需求是不断地改变的,但我们的程序可不能老跟着需求变,即使老板吃得消,员工也吃不消啊。改变一个页面的业务逻辑,只需要在配置文件中修改一下action的配置就可以了,其它的代码都不需要改变。说到配置文件,它还有一个很重要的作用,那就是“控制反转”或者“依赖注入”,其实我也搞不清这两个词语之间是什么关系。不过,也没必要在这些文字间咬文嚼字,就用IOC来代替它们好了。在开发过程中,经验会遇到一个类里面包含另一个类的实例,如:
那么,在上面的代码中,B将依赖于A,也就是说,没有A,B就无法正常的执行。这样,B和A就产生了耦合。说得再明白一点,如果B的业务逻辑需要改变了,不想使用A,而是使用C,那么,就需要修改B的代码,还要重新编译,这对于大型的系统来说,需要起来代价是很大的。为了达到高内聚低耦合的需要,我们应该让B依赖于抽象而不是具体。比较常用的方法是使用工厂模式,如:
那么需要改变时,只需要发动工厂就行了,这大概就是平时所说的控制反转吧,由以前的修改B类转为修改工厂类。但是还是需要修改代码,当需要扩展新的类时也要修改工厂类,这明显是换汤不换药嘛,依赖注入也就应运而生了。 对于依赖注入,我的感觉是就像是打针,需要什么就往里面注射什么。那么针在哪里?当然是在配置文件里了。要实现依赖注入,得修改一下B类,添加Setter方法。
此时,B类中A属性就可以通过配置文件来注入了,想要A就注入A,想要C就注入C,多方便啊。注入,你可以这样理解:类是一个封装体,就把它想象成一个空心的球体吧,Setter方法相当于这个球体的一个小孔,注入也就是把它需要的东西通过这个小孔往里面塞。 说了这么多,其实都是在为我下一篇的文章作准备。下一篇文章将发布nstruts2.0,它比先前发布的nstruts1.0有了很大的改进,增加了许多新的元素,并且还支持依赖注入,注入的数据可以是对象,常量,还有集合。这些功能已经能完全满足项目开发中大部分的需求了。同时,nstruts2.0将会是个很好的学习实例,它设计的思路比较清晰和简单,对象框架设计感兴趣的朋友都会有或多或少的帮助。在发布之前,大家可以先看下我先前发布的nstruts1.0,了解一下大概。 |
发表评论
-
数据库数据批量SQL导出工具
2011-07-04 16:05 1354好久没有完整的编码了,没有了code带来的乐趣,每天忙碌与b ... -
ultraedit 中中文乱码 的解决方法
2010-08-25 08:24 0ultraedit 中中文乱码 的解决方法 问题:同样的一个 ... -
was配置jms 进行mq的访问方法
2010-09-07 08:24 01、 软件准备,mq、was均安装完毕,此处使用的是mq ... -
db2 ERRORCODE=-4499, SQLSTATE=08001
2010-09-19 06:50 45541、 db2 ERRORCODE=-4499, SQLSTAT ... -
ultraedit 中中文乱码 的解决方法
2010-08-25 08:24 2339ultraedit 中中文乱码 的解决方法 问题:同样的一个 ... -
was配置jms 进行mq的访问方法
2010-09-07 08:24 15891、 软件准备,mq、was均安装完毕,此处使用的是mq ... -
Hibernate3.3使用手册下载chm版
2010-07-15 13:57 1035Hibernate3.3使用手册下载chm版,欢迎下载 -
利用P6SPY +SQL Profiler记录、统计web app对数据库的操作。 - 每日E读 - BlogJava
2010-07-13 05:14 930弄hibernate时,想显示 ... -
P6SPY结合SQL Profile进行数据库调优
2010-07-13 07:51 1059使用p6spy进行数据库操作执行时间的记录极大的方便了数据库程 ... -
设计模式学习笔记,不断更新中……
2010-06-21 03:05 7082010-6-21 设计模式不过是在编程过程中需要遵守的一些 ... -
java容器分类图
2010-05-29 03:07 1010做个笔记 -
关于Hibernate获取JDBC连接 直接执行SQL - 客观,辩证,务实,创新 - JavaEye技术网站
2010-06-09 07:58 1020关于Hibernate获取JDBC连接 直接执行SQL关 ... -
NIO入门pdf分享
2010-04-13 14:39 1173根据IBM developerwork上的教材整理的pdf文档 ... -
守护线程 - walkes - JavaEye技术网站
2010-04-08 01:51 637守护线程 关键字: 守护线程 守护线程是为其他线程的运 ... -
同步、异步、长连接、短连接
2010-04-08 02:24 1754四个概念对应于网络连 ... -
【转】GEF+EMF Step By Step (转) - 嘟嘟 - BlogJava
2010-04-06 04:55 867学习GEF的曲线还是比较陡峭的,建议按照以下步骤来学(要求先熟 ... -
Java 理论与实践: 使用通配符简化泛型使用
2010-04-07 06:37 596Java 理论与实践: 使用通配符简化泛型使用 理解通配 ... -
draw2d
2010-03-29 22:28 628draw2d,画图简单,n多东西的页面展示搞得我筋疲力尽,稳住 ... -
MQ大大降低了程序的耦合性
2010-03-25 03:20 690通过同一个MQ队列的消息读取,可以将不同的程序模块联系起来,大 ... -
关于strtus2上传文件的问题
2010-03-17 06:26 7741、 strtus2在上传文件时,同样将java.io.Fil ...
相关推荐
- **重量级IoC Container**:功能强大,支持多种依赖注入策略和高级特性,但可能对性能有较大影响。 - **轻量级IoC Container**:功能相对简单,对性能的影响较小,适用于对性能敏感的应用程序。 ##### 4.2.1 重量...
首先,让我们理解依赖注入的基本概念。在面向对象编程中,一个类可能依赖于其他类来完成某些任务。传统的做法是直接在类内部创建或引用这些依赖的实例,这被称为硬编码。而依赖注入则是通过外部将依赖对象传递给需要...
### C# 依赖注入 控制反转 #### 一、IoC(控制反转)简介 IoC,即"Inversion of Control"(控制反转),是软件工程领域的一个重要概念,特别是面向对象编程中的一个关键设计原则。从字面上理解,IoC指的是程序运行...
为了深入理解依赖注入在C++中的应用,文章还提供了实现依赖注入容器的附录和参考文献,便于读者进一步学习和实践。通过这些内容的学习,可以掌握依赖注入的基本概念、方法和技巧,从而在实际开发中有效地利用依赖...
首先,我们要理解什么是依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式,它允许我们把一个对象的依赖关系传递给另一个对象,而不是让对象自己去查找或创建依赖。在Spring中,依赖注入可以通过...
【Spring依赖注入详解】 在Java开发中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)功能而闻名。依赖注入是一种设计模式...理解并熟练掌握依赖注入,能够帮助开发者构建更健壮、更灵活的Java应用。
首先,让我们理解什么是依赖注入。依赖注入的核心思想是,一个对象不直接创建或查找它所依赖的对象,而是由外部实体将这些依赖传递给它。这样做的好处在于,对象之间的耦合度降低,因为它们不再直接控制彼此的生命...
本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件`sample-autoconfig`进行理解和实践。 一、XML配置的依赖注入 在Spring早期版本中,XML配置是最常见的DI方式。开发者在Spring的配置文件(如`...
### Spring IoC与注解依赖注入详解 #### 一、Spring框架简介 Spring框架是由Rod Johnson创建的一...以上就是关于Spring IoC容器以及注解依赖注入的相关知识点介绍,希望能够帮助大家更好地理解和掌握这一重要的技术。
依赖注入(Dependency Injection,简称DI)是软件设计...通过理解并应用依赖注入,我们可以编写出更加灵活和易于维护的PHP应用程序。在实践中,结合使用各种注入方式,并利用IoC容器等工具,可以更高效地实现这一模式。
Angular6是Google推出的前端开发框架,它在设计时就考虑到了组件化和模块化的开发模式。...通过深入学习这个Demo,开发者将更好地理解Angular6的依赖注入系统和懒加载机制,从而在实际项目中更有效地应用这些概念。
【标题】"第三章 Spring4 依赖注入"深入解析 在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种核心的设计模式,它允许我们...理解并熟练运用依赖注入,能更好地发挥Spring框架的优势,提升软件质量。
在编程领域,反射和依赖注入是两种非常重要的概念,它们都是高级编程技术,可以极大地提升代码的灵活性和可维护性。下面将详细讲解这两个概念及其在实际应用中的DEMO示例。 **反射** 反射是Java(以及其他一些面向...
在深入探讨Spring框架中基于注解(Annotation)的依赖注入(Dependency Injection,简称DI)实现之前,我们首先需要理解几个核心概念:Spring框架、依赖注入、以及注解本身。 ### Spring框架简介 Spring框架是一个...
依赖注入(Dependency Injection,简称DI)是Spring框架的核心特性,也是实现控制反转(Inversion of Control,简称IoC)的一种方式。它旨在提高代码的可重用性、可...理解和熟练应用依赖注入是掌握Spring框架的关键。
**依赖注入的理解** 依赖注入的基本思想是,一个类不应该负责查找或创建它所依赖的对象,而是应该由外部容器提供。在Spring中,有三种主要的依赖注入方式: 1. **构造器注入**:通过构造函数参数注入依赖。当对象...
首先,让我们理解什么是依赖注入。依赖注入的核心思想是解耦组件之间的依赖关系,使得组件之间通过接口进行通信,而不是通过硬编码的方式来创建和管理彼此的实例。这使得代码更易于测试,因为我们可以轻松地替换依赖...
本文将详细介绍依赖注入的概念、作用以及其实现方式,并通过具体的代码示例来加深理解。 #### 二、依赖注入概述 依赖注入是一种设计模式,它允许在运行时将对象的依赖关系动态地传递给对象,而不是在代码中硬编码...
在Java开发中,依赖注入...通过分析`xmlparse_Ioc`源码,我们可以了解到XML解析和依赖注入的具体实现细节,加深对Spring框架的理解。同时,这也有助于我们在实际项目中更灵活地运用依赖注入,提升代码质量。
首先,我们来深入理解Spring的依赖注入。在Spring中,依赖注入主要通过以下几种方式实现: 1. **构造器注入**:通过在类的构造函数中传递依赖对象的实例,Spring容器会在创建目标对象时调用合适的构造函数并注入...