spring学习之---依赖注入

spring框架的核心功能有两个:

  • spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。
  • spring容器管理容器中Bean之间的依赖关系,spring使用一种被称为”依赖注入”的方式来管理Bean之间的依赖关系。使用依赖注入,不仅可为Bean注入普通的属性值,还可以注入其他Bean的引用。
1.理解依赖注入

控制反转(IoC):调用者无须主动获取被依赖对象,调用者只要被动接受spring容器为调用者的成员变量赋值即可。
依赖注入(DI):spring容器负责将被依赖对象赋值给调用者的成员变量,相当于注入它依赖的实例。
两大改变:

  • 程序无须使用new调用构造器去创建对象。所有的Java对象都可交给spring容器去处理。
  • 当调用者需要调用被依赖对象的方法时,调用者无须主动获取被依赖对象,只要等待spring容器注入即可。
2.设值注入

设值注入是指IoC容器通过成员变量的setter方法来注入被依赖对象。
spring推荐面向接口编程

    <bean id="" class="">
        <property name="" value/ref=""/>
    </bean>

spring容器会使用XML解析器读取class属性值,并利用反射来创建该实现类的实例。spring会在调用默认的构造器创建Bean实例之后,立即调用对应的setter方法为Bean的成员变量注入值。
使用spring IoC容器的三大基本要点:

  • 应用程序的各组件面向接口编程。面向接口编程可以将组件之间的耦合关系提升到接口层次,从而有利于项目后期的扩展。
  • 应用程序的各组件不再由程序主动创建,而是由spring容器来负责产生并初始化。
  • spring采用配置文件或注解来管理Bean的实现类、依赖关系,spring容器则根据配置文件或注解,利用反射来创建实例,并为之注入依赖关系。
3.构造注入

在构造实例时,已经为其完成了依赖关系的初始化。驱动spring在底层以反射方式执行带指定参数的构造器,当执行带参数的构造器时,就可利用构造器参数对成员变量执行初始化。

    <bean id="" class="">
        <constructor-arg ref/value=""/>
        ···
    </bean>

配置<sonstructor-arg.../>元素时可指定一个index属性,index=”0”表明该构造参数值将作为第一个构造参数值。
如果构造方法出现了重载,可通过指定type属性来进行区分。

建议采用以设值注入为主,构造注入为辅的注入策略。对于依赖关系无须变化的注入,尽量采用构造注入;而其他依赖关系的注入,则考虑采用设值注入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值