Spring in Action(第二章 装配 Bean)学习笔记

1.Spring容器负责把相互协作的对象引用赋予各个对象,创建应用对象之间的协作关系的行为被称为装配,
这也是依赖注入的本质。

2.所谓bean,相当于定义了一个组件,这个组件是用于实现某个功能的。这里所定义的bean就是相当于给
你一个简洁方便的方法来调度这个组件实现你要完成的功能。它是java的class,符合两个条件,首先有无
参构造函数,其次为成员编写了set get方法。

3.可以通过构造器注入对象引用,也可以通过工厂方法构建bean

4.Bean的作用域
a.singleton 在每个Spring容器中,一个bean定义只有一个对象实例
b.prototype 每次调用都创建一个实例
c.request 在一次http请求中,每个Bean定义对应一个实例,该作用域仅在Spring MVC中有效
d.session 在一个HTTP Session中,每个session对应一个实例
e.global-session 在一个全局的HTTP Session中,每个Bean定义对应一个实例

5.初始化和销毁bean,可在xml中对每个bean进行配置,当很多bean都拥有相同的名字的初始方法和销毁
方法时,可直接使用default-init-method和default-destroy-method

6.注入bean的属性
通常bean的属性是私有的,同时拥有一组存取器方法,以setXXX和getXXX形式存在,Spring可借助属性的
set方法来配置属性的值,以实现setter方法的注入。

7.注入简单值
在Spring中我们可以使用<property>元素来配置bean的属性,<property>在许多方面都与<constructor-arg>
类似,只不过一个是通过构造参数来注入值,另一个是通过调用属性的setter方法来注入值。

8.注入引用
注入简单的值和注入引用都是通过<property>,只不过注入简单值是通过name value来注入,而注入引用通过
name ref来实现。

://Spring提倡面向接口编程,面向接口编程与依赖注入协作实现了松散耦合。
9.内部类
内部类对应内部bean,即可以通过setter注入,又可以通过构造注入
setter注入
<property name=“instrument">
     <bean class=“org.springframework.springidol.Saxphpne/>
</property>
构造注入
<constructor-arg>
     <bean class=“org.springframework.springidol.Saxphpne/>
</constructor-arg>

//内部bean,定义内部bean可以实现对某个变量的私有

10.使用Spring的命名空间p装配属性(更简洁)
<bean id=“kenny” class= “com.springinaction.springidol.Instrumentalist"
     p:song = “Jingle Bells"
     p:instrument-ref = “saxophone">
</bean>

11.装配集合
装配list
<property name=“instruments">
     <list>
          <ref bean=“guitar”/>
          <ref bean=“cymbal”/>
     </list>
</prpperty>
装配set同理
装配map
<property name = “instruments">
     <map>
          <entry key=“GUITAR” value-ref=“guitar”/>
          <entry key=“CYMBAL” value-ref=“cymbal”/>
     </map>
</property>
装配Properties集合
<property name = “instruments”>
     <props>
          <prop key=“GUITAR”>STRUM STRUM</prop>
          <prop key=“CYMBAL”>CRASH CRASH</prop>
     <props>
</property>

12.即可以通过xml装配bean,又可以通过SpEL装配bean
SpEL的首要目标是是通过计算获得某个值。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值