文档章节

Spring IOC的三种依赖注入方式

华兹格
 华兹格
发布于 2014/01/24 14:33
字数 468
阅读 3294
收藏 1

IOC为了处理类与类之间复杂关系而产生,通过控制反转与依赖注入思想将类与类之间的关系放到配置文件中,个各类都是相对独立存在的,类之间的调用关系由配置文件来实现。由此实现程序的松耦合。

DI:控制反转,

依赖注入方式:

1.接口注入:在接口中定义要注入的信息,并通过接口来完成注入。(Spring不支持这种注入方式--不支持的原因是--Spring声称其是非入侵式的《离开这个框架也能活》,如果使用接口注入的话,就违背了这一原则)

2.设置注入:在被注入类中定义set方法,并在参数中定义需要注入的对象。先实例化对象,然后查找对依赖的对象并实例化依赖对象,最后调用set方法将依赖对象注入。

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="actions" class="Actions"/>
    <bean id="execute" class="Execute">
        <property name="actions">
            <ref bean="actions"/>
        </property>
    </bean>
</beans>

public class Execute {
    Actions actions;
    public void setActions(Actions actions) {
        this.actions = actions;
    }
    public Execute(){}    //构造方法
    public void doStr(){
        actions.say();
    }
}

3.构造注入:在要被注入的类中声明一个构造方法,并在此方法的参数中定义要注入的对象。spring调用构造方法时,会将这些对象都实例化好,然后经这些对象作为参数注入。

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="actions" class="Actions"/>
    <bean id="execute" class="Execute">
        <property name="actions">
            <ref bean="actions"/>
        </property>
    </bean>
</beans>

public class Execute {
    IActions actions;
    public Execute(Actions actions){//构造方法
        this.actions = actions;
    }
    public void doStr(){
        actions.say();
    }
}

本文转载自:

共有 人打赏支持
华兹格

华兹格

粉丝 162
博文 220
码字总数 82578
作品 0
海淀
高级程序员
私信 提问
Spring框架笔记(三)——Spring容器、属性注入和构造器注入详解

Spring 容器 在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后, 才可以从 IOC 容器里获取 Bean 实例并使用. Spring 提供了两种类型的 IOC 容器...

HappyBKs
2015/07/12
0
5
Spring IOC知识点一网打尽!

前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工...

Java3y
2018/05/22
0
0
Spring IOC源码流程解析

Spring是一个轻量级的java开发框架,主要是简化java工程师的开发过程,其主要的模块是IOC和AOP。何为IOC?Inversion of control,控制反转。什么是控制?控制为什么需要反转?这些都是我们要...

fancy宸
2018/07/12
0
0
spring 入门及IOC容器

Spring 一.Spring,原意“春天”,是一种轻量级容器框架,所谓轻量级就是依赖比较少,侵入性较低,其核心就是1. IOC(Inversion of Control)/DI(Dependency Injection)IoC的核心思想是通过消...

天国使者125
2013/06/15
0
0
【死磕 Spring】----- IOC 之深入理解 Spring IoC

版权声明:版权声明:转载前请留言获得作者许可,转载后标明作者 chenssy 和原文出处。原创不易,感谢您的支持 https://blog.csdn.net/chenssy/article/details/82343456 在一开始学习 Spri...

chenssy
2018/09/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小程序-星星评分

//UI界面 <block wx:for='{{item.rateArray}}' wx:key wx:for-item="i" > <image wx:if='{{ i==0}}' src='../../assets/xing4.png'></image> <image wx:if='{{ i==1}}' src='../../assets/xi......

lsy999
3分钟前
0
0
JavaScript与WebAssembly进行比较

本文由云+社区发表 作者:QQ音乐前端团队 在识别和描述核心元素的过程中,我们分享了构建SessionStack时使用的一些经验法则,这是一个轻量级但健壮且高性能的JavaScript应用程序,以帮助用户...

腾讯云加社区
4分钟前
0
0
如何设计一个 RPC 系统

RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高。但是RPC本身的构成却比较复杂,由于受到编程语言、网络模型、使...

编程SHA
5分钟前
0
0
API权限控制与安全管理

一、API权限控制范围 1、首先验证web端请求参数: (1)web请求参数:渠道、ServiceName、版本、Airline、时间戳(yyyyMMddhhmmssSSS)、reqXML、Language、签名 (2)请求不能为空,并且格式...

Jack088
6分钟前
0
0
最热门的13个Java微服务框架

曾经的服务器领域有许多不同的芯片架构和操作系统,经过长期发展,Java的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱 本文,我们将和大家分享13个可靠的Jav...

java菜分享
6分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部