今天学了一下Spring的依赖注入,也称作是“反转控制”。
当一个类A需要用到另一个类B的对象的时候,通常情况下,就是在A中实例化一个B类的对象,然后通过对象来调用B类中的非私有变量和方法。这是不符合工厂设计模式的要求的,并且这样的设计方式存在很多的缺陷:
其一,A类去主动调用B类的构造方法,这就使得A类和B类之间的关系非常紧密,在Java程序设计的过程中,这种两个类之间关系非常紧密的情况是非常忌讳发生的,因为结合紧密的两个类在程序设计过程中会很难进行调试,尤其是在大的程序中,如果一连串的类之间发生调用关系,那么如果其中某一个类发生了改变,或者说某一个或者几个类发生了错误,需要调试,那么,所有调用到这几个类的类都要进行相应的修改,这是很麻烦的事情。
其二,A类调用B类的方法,这就说明,A类必须知道B类方法的实现方式,这样使得AB之间的耦合度相当高,这也是不利于Java程序设计的。整个java程序设计的发展历史,就是一个怎样在类与类之间解耦的过程,让有关联的类处于一个松耦合的状态,这是java编程所追求的一个目标。
Spring框架是工厂设计模式的一个非常好的体现,也同样特别注意了“解耦”,同样,它也是用接口的方式将程序解耦发挥到一个新的境界的框架。
同样引用上面的例子,类A需要用类B的方法,在Spring框架中,不再是由A去主动调用B的构造方法,而是由Spring容器来完成,Spring容器只需要知道A需要得到哪个Bean的实例,就会帮A去创建一个B的实例,并不需要A自己去调用B的构造方法,Spring怎么知道A需要哪个Bean的实例?这就要涉及到Spring的IoC容器,它是一个“工厂”,可以对每个Bean以配置文件的形式进行管理,而A需要B对象的时候,就只要创建一个工厂实例,然后通过工厂实例来获得一个B的bean实例,这样就可以去使用类B的非私有成员了。
从整体上看,所有的类并没有和于它关联的类有任何的直接联系,所有的类都通过配置文件的形式,“挂”到Spring容器里去了,由Spring容器统一管理。调用者直接等待容器把被调用者的实例“注入”进来,然后使用。由此可以想象,Spring容器的功能应该有多强大。
分享到:
相关推荐
Spring依赖注入(Dependency Injection,简称DI)是Spring框架的核心特性之一,它允许对象之间的依赖关系在运行时由外部容器管理,而不是由代码内部硬编码。这样可以提高代码的可测试性、可维护性和松耦合性。下面...
通过运行这个demo,新手可以直观地理解Spring如何管理对象并进行依赖注入。 总结一下,Spring 2.5的依赖注入机制通过解耦组件间的依赖关系,提高了代码的可测试性和可维护性。在实际项目中,开发者可以利用这一特性...
总的来说,这份Spring新手教程3件套将帮助你从零开始,逐步掌握Spring框架的各个方面,无论是基本的依赖注入,还是进阶的Web开发和分布式系统支持,都将为你提供坚实的理论基础和实践经验。通过系统学习并实践这些...
3. **Bean和依赖注入**:在Spring配置文件中,我们可能定义了一些Bean,它们是Spring管理的对象。通过依赖注入,Spring可以在运行时自动将依赖关系注入到Bean中,无需手动创建和管理对象。 4. **JDBC或ORM(Object-...
首先,我们来理解Spring的核心理念——依赖注入(Dependency Injection,DI)。依赖注入是Spring的核心之一,它允许开发者通过外部容器管理对象之间的依赖关系,而不是让对象自己去寻找它们所依赖的对象。这样可以...
对于新手来说,Spring框架的学习路径通常从理解核心概念(如DI和AOP)开始,然后逐步学习Spring MVC、Spring Boot和Spring Data。实践是最好的老师,通过创建简单的项目,如CRUD操作或构建一个简单的Web应用,可以...
Spring是一个广泛使用的Java企业级应用开发框架,它提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)、数据访问、事务管理以及Web应用程序的支持。 在Spring框架中,依赖注入是核心特性之一,它允许...
这些书籍将帮助新手逐步理解Spring框架的核心特性,同时提供丰富的实例和最佳实践,帮助读者从基础到高级,全方位地掌握Spring技术栈,为后续的企业级应用开发打下坚实基础。通过学习和实践,你可以有效地提升自己的...
Spring框架是Java平台的一个开源应用框架,由Rod Johnson在2003年创立,其核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-Oriented Programming,AOP)以及提供了一套完整的解决方案来...
接着是“IntroductiontoSpringFramework”(Spring框架简介),它包含了对依赖注入(Dependency Injection,DI)和控制倒置(Inversion of Control,IoC)的介绍。依赖注入是Spring框架的核心特性之一,通过它,...
这些jar包使得开发者能够在项目中无缝集成Spring框架,实现MVC架构、依赖注入、事务管理等功能,极大地提高了开发效率。 值得注意的是,压缩包还提供了中文文档地址,这对国内开发者来说是一大福音。Spring的中文...
Spring框架是Java开发中最常用的轻量级开源框架之一,它为构建企业级应用程序提供了一个全面的编程和配置模型。这个“Spring入门教程”...无论是对Java开发新手还是希望深入理解Spring的开发者,这都是一个宝贵的资源。
- **依赖注入**:IoC容器负责管理对象的生命周期,并在适当的时候自动注入所需的依赖。 ##### IoC的优点 1. **解耦**:通过将对象的创建和管理职责转移到容器,使得各个组件之间的耦合度大大降低,提高了系统的...
Spring框架是一个全面的J2EE应用程序框架,其核心特性之一是轻量级的控制反转(IoC)和面向切面编程(AOP)的容器框架。Spring可以独立使用,也可以与...对于新手而言,理解和掌握这些基础知识是入门Spring的第一步。
### Spring Framework 5.0.0.M1 详尽教程概览 #### 一、Spring框架概述 **1. 开始使用Spring** Spring 框架是一个轻量级且全面...这不仅有助于新手快速上手,也为有经验的开发者提供了深入理解 Spring 框架的机会。
Spring框架是Java开发中的核心工具集,它以其模块化、可扩展性和易用性而闻名。这个名为"spring"的压缩包很可能包含...无论你是新手还是经验丰富的开发者,理解并掌握Spring框架都是提升开发效率和代码质量的关键步骤。
Spring框架是中国乃至全球开发者广泛使用的Java企业级应用开发框架,尤其在轻量级、依赖注入(DI)和面向切面编程(AOP)方面表现出色。这本书籍“一本很不错的关于spring入门的书籍”显然是针对初学者设计的,旨在...
依赖注入是Spring框架的核心特性之一,它通过将对象间的关系进行解耦来实现对象间的依赖关系管理。在Spring框架中,依赖注入主要通过三种方式实现:构造器注入、设置方法注入和接口注入。依赖注入使得开发人员可以在...
这个模板可能包含了上述提到的一些核心概念,如依赖注入、Spring MVC的使用,或者数据库操作的示例,帮助新手快速理解和实践Spring框架的精髓。在实际开发中,开发者可以根据这个模板进行扩展,逐渐构建出满足需求的...
总的来说,这个压缩包中的11张学习资料很可能会涵盖Spring框架的基础概念、核心组件、依赖注入、Spring MVC、AOP、数据访问以及测试等方面的内容。对于新手来说,这是一个很好的起点,可以帮助他们逐步理解并掌握...