`
run_wang
  • 浏览: 168407 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Spring依赖注入

阅读更多
依赖注入和控制反转是同一个概念,
具体的含义是:当某个角色(可能是java的实例->调用者)需要另一个角色(另一个java实例->被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里。创建被调用者的工作不再由调用者来完成,因此称为控制反转;所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建和维护由外部容器负责的。这样控制权就由应用转移斗了外部容器。控制权的转移就是所谓反转。创建被调用者实例的工作通常由Spirng容器来完成,然后注入调用者,因此也称依赖注入。所谓依赖注入就是指:在运行期,由外部容器动态的将依赖对象注入到组件中。

Spring应用中,通过Spring控制反转把依赖对象交给Spring进行创建和维护,并把依赖对象通过容器注入到组件内部

一种 :通过构造器参数进行注入
二:通过属性的set方法注入
通过属性注入依赖对象时,必须为属性提供set()方法,一般的情况下提供set()和get()方法
创建一个PersionDaoBean对象,抽取其接口,并把PersionDao对象注入到persionServiceBean对象中

PersionDaoBean代码如下:
package com.xinyang.dao.impl;

import com.xinyang.dao.PersionDao;


public class PersionDaoBean implements PersionDao {
/* (non-Javadoc)
  * @see com.xinyang.dao.impl.PersionDao#add()
  */
public void add(){
  System.out.println("执行PersionDao中的add()方法");
}
}


抽取其接口,接口和其对象最好不要放在一起
package com.xinyang.dao;

public interface PersionDao {

public void add();

}
PersionServiceBean  代码如下:
package com.xinyang.services.impl;


import com.xinyang.dao.PersionDao;
import com.xinyang.services.PersionService;


public class PersionServiceBean implements PersionService {
/* (non-Javadoc)
  * @see com.xinyang.services.impl.PersionService#set()
  */


private PersionDao persionDao;




public PersionDao getPersionDao() {
  return persionDao;
}




public void setPer(PersionDao persionDao) {
  this.persionDao = persionDao;
}




public void set()
{
  persionDao.add();
}

}
其接口:
package com.xinyang.services;

public interface PersionService {

public void set();
}




在这个服务层对象里面,我们没有看到PersionDaoBean的身影,也就是说我们并不关心这个PersionDaoBean的实现类是谁,我们只是通过接口去引用注入进来的对象,通过接口调用其方法
这样服务层组件和Dao层的组件彻底解耦


把PersionDaoBean  注入到Spring容器中
<bean id="persionService1" class="com.xinyang.services.impl.PersionServiceBean">
<property name="per" ref="persionDao"></property>
</bean>
<bean id="persionDao" class="com.xinyang.dao.impl.PersionDaoBean"></bean>
通过配置元素的子元素property 用于为属性注入值
这个属性的名称就是被注入对象属性 set()方法后面的值

public void setPer(PersionDao persionDao) {
  this.persionDao = persionDao;
}
也就是Per 因为第二个字母是小写 所以首字母必须小写 若第二个字母是大写 实例代码为:
public void setPEr(PersionDao persionDao) {
  this.persionDao = persionDao;
}
而这个值就为:PEr ,
这就是我们要指定的注入的属性 不过通常的是set和get后面的值相同所以在一般情况 使用get后面的值来指定 前提是set和get后面的值相同


若把配置文件中下面persionDao 对象注入到这个属性里面需要使用一个属性ref, ref里面填写的值就是我们要注入的bean的这个名称
Spring是根据ref属性的名称从Spring容器里面去得到<bean id="persionDao" class="com.xinyang.dao.impl.PersionDaoBean"></bean>因为这个bean在Spring容器实例化时被实例化,所以它在容器里面根据这个名称得到这个bean,然后把这个bean通过反射技术赋给了property 中name这个属性
分享到:
评论

相关推荐

    spring依赖注入底层详解

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的底层实现机制。 首先,我们要...

    spring依赖注入

    Spring依赖注入是Spring框架的核心特性之一,它使得对象之间的依赖关系得以解耦,增强了代码的可测试性和可维护性。依赖注入(Dependency Injection,简称DI)的理念是,一个对象不应该负责寻找并创建它所依赖的对象...

    spring依赖注入的实现原理

    Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中的一个重要概念,它是Spring框架的核心特性之一,用于降低组件之间的耦合度,提高代码的可测试性和可维护性。本篇文章将深入探讨Spring依赖注入的...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

    spring依赖注入三种方式 测试源码

    通过阅读和理解这些源码,你可以更深入地了解Spring依赖注入的工作原理及其在项目中的具体使用。 在进行依赖注入时,Spring使用BeanFactory或ApplicationContext作为容器,负责创建、管理和装配Bean。容器读取配置...

    Spring依赖注入检查.

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...

    java中spring依赖注入的简单例子

    javaEE 开发中 现在最成熟的框架之一应该就是spring了 spring框架最强大的地方就是实现了依赖注入 也叫控制反转 最近的一个项目中用的就是 spring框架 spring框架是工厂模式的应用结合了MVC的设计思想 大家可以...

    模仿Spring依赖注入

    【Spring依赖注入详解】 在Java开发中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)功能而闻名。依赖注入是一种设计模式,它允许我们解耦组件,使我们的应用程序更加灵活,易于测试和维护。本篇...

    Spring依赖注入的方式

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入...

    spring依赖注入bean

    **Spring 依赖注入 (DI) 与 Bean** Spring 框架的核心特性之一就是依赖注入(Dependency Injection,简称 DI),这是一种设计模式,它允许我们控制组件之间的耦合,而不是让组件自行创建它们所依赖的对象。这有助于...

    Spring依赖注入使用setter设注入demo

    在这个名为“Spring依赖注入使用setter设注入demo”的示例中,我们将深入探讨如何通过setter方法实现Spring的依赖注入。 首先,理解依赖注入的基本思想:对象之间的依赖关系不是由对象自身管理,而是由外部容器(在...

    Spring依赖注入使用构造设注入demo

    本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...

    Spring依赖注入DI.zip

    下面我们将深入探讨Spring依赖注入的概念、工作原理以及如何在实践中应用。 1. **依赖注入概念**: - 依赖:一个类对另一个类的使用称为依赖。 - 注入:将依赖的对象传递给需要它的类,而不是由类自己去创建或...

    spring依赖注入基础知识.rar

    Spring依赖注入(Dependency Injection,简称DI)是Spring框架的核心特性之一,它允许对象之间的依赖关系在运行时由外部容器管理,而不是由代码内部硬编码。这样可以提高代码的可测试性、可维护性和松耦合性。下面...

    Spring 依赖注入

    ### Spring 依赖注入详解 #### 一、依赖注入(DI)概述 依赖注入(Dependency Injection,简称 DI)是一种设计模式,旨在减少代码间的耦合度并简化对象的创建过程。这种模式通过将对象间的依赖关系从对象内部转移...

    spring依赖注入的几种方式

    Spring 依赖注入的几种方式 依赖注入(Dependency Injection,简称 DI)是一种设计模式,它可以将对象之间的耦合关系降到最低,从而提高系统的灵活性和可维护性。在 Spring 框架中,依赖注入是通过 IoC 容器来实现...

    Spring 依赖注入 构造方法注入

    NULL 博文链接:https://zhangyulong.iteye.com/blog/856986

    Spring依赖注入原理解析.doc

    Spring依赖注入机制,也被称为控制反转(Inversion of Control,IOC),是Spring框架的核心特性,它使得应用程序的组件之间能够实现松散耦合。在传统编程中,对象通常自行创建和管理它们所依赖的其他对象,而在...

Global site tag (gtag.js) - Google Analytics