在Spring中,对象无需自己负责创建和管理对象。相反,容器负责把需要相互协作的对象引用赋予各个对象。这样对象自身就可以从对象的管理中解脱出来,从而可以实现解耦。创建应用对象之间协作关系的行为通常被称为装配。这也是依赖注入的本质。依赖注入是Spring使用的基本要素,因此在开发基于Spring的应用时,这些技术无时无刻不在被使用着。
Spring是一个基于容器的框架。但是如果没用相应的配置的话,那么就相当于是一个空容器。一个空的容器是没有实际用处的。所以我们需要通过配置来告诉容器它需要加载那些Bean并且如何装配这些bean。虽然sping提供了两种配置方式,但基于xml文件的配置是spring最原始的配置方式,虽然在大型项目中其配置将变得相当的庞大。但简单的项目使用这种方法还是可以达到可读性好的优点的。
装配的一个重要目的就是,将想要的值注入到相应Bean的属性中。依据注入的方法可以将他们分成两类。构造器注入和setter方式的注入(命名空间p)。依据内容可以分成五类。简单值,引用,集合,内部bean,SPEL表达式。
构造器注入简单值
<bean id="duke" class="org.spring.chapter2.Juggler"> <constructor-arg value="15" />
使用xml <constructor-arg>标签的value属性通过Juggler类的构造方法注入简单值“15”
构造器注入引用
<bean id="sonnet29" class="org.spring.chapter2.Sonnet29" /> <bean id="poeticDuke" class="org.spring.chapter2.PoeticJuggler"> <constructor-arg value="15" /> <constructor-arg ref="sonnet29" />
使用xml <constructor-arg>标签的ref属性通过PoeticJuggler类的构造方法注入sonnet29的引用。
setter方式注入简单值和引用
<bean id="piano" class="org.spring.chapter2.Piano" /> <bean id="kenny" class="org.spring.chapter2.Instrumentalist"> <property name="song" value="Jingle Bells" /> <property name="instrument" ref="piano" /> </bean>
使用xml<property>的name和value属性指定bean的属性的值,需要bean中有相应的setXXX()方法。
setter方式注入简单值和引用(命名空间p)
<bean id="saxophone" class="org.spring.chapter2.Saxophone" /> <bean id="dan" class="org.spring.chapter2.Instrumentalist" p:song = "Jingle Bells" p:instrument-ref = "saxophone" />
可以简化配置,但需在beans中声明相应的命名空间
setter方式注入列表
<bean id="saxophone" class="org.spring.chapter2.Saxophone" /> <bean id="piano" class="org.spring.chapter2.Piano" /> <bean id="hank" class="org.spring.chapter2.OneManBand"> <property name = "instruments"> <list> <ref bean="saxophone" /> <ref bean="piano" /> </list> </property> </bean>
注:Spring实战(第三版)的学习笔记
相关推荐
博客地址:https://blog.csdn.net/u010476739/article/details/76732201 spring装配bean的方式实例
主要给大家介绍了关于spring装配bean的3种方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
主要介绍了spring装配bean方法实例总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本篇文章主要介绍了浅谈Spring装配Bean之组件扫描和自动装配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
大家都知道spring有多重配置方式,基于XML,基于注解,基于java类的配置,其中基于XML是最强大的一种,下面这篇文章主要给大家介绍了关于Spring装配Bean之XML安装配置bean的相关资料,需要的朋友可以参考借鉴,下面...
主要给大家介绍了关于Spring装配Bean之用Java代码安装配置bean的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
主要介绍了Spring Bean常用的的装配方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
NULL 博文链接:https://364232252.iteye.com/blog/2369853
ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean...
主要介绍了spring在IoC容器中装配Bean详解,具有一定借鉴价值,需要的朋友可以参考下
众所周知Spring里面的bean就类似是定义的一个组件,而这个组件的作用就是实现某个功能的,下面这篇文章主要给大家介绍了关于spring入门教程之bean继承与自动装配的相关资料,需要的朋友可以参考借鉴,下面随着小编来...
主要介绍了Spring自动装配Bean实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Spring @Conditional条件化装配bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1.4 装配Bean-自动装配(重要!) Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 1 ...
目的:Spring容器已经成功获取了UserController实例,并通过调用实例中的方法执行了各层中的输出语句。 运行结果为: User [id=1, name=张三, password=123] userDao say hello world! UserService say hello world ...
本篇文章主要介绍了Spring学习之Bean的装配三种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了spring boot中的条件装配bean的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
spring 3.X 企业应用 第四章 在Ioc容器中装配Bean 手机拍的图片,略有缺页
主要介绍了spring定义和装配bean详解,具有一定参考价值,需要的朋友可以了解下。
主要介绍了JSP Spring 自动化装配Bean实例详解的相关资料,需要的朋友可以参考下