首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Spring 学习札记 (三)

2013-08-01 
Spring 学习笔记 (三)Spring 学习笔记 (三)?19. 深入理解依赖关系配置? ? (1) 注入其他bean的属性值? ? ?

Spring 学习笔记 (三)

Spring 学习笔记 (三)

?

19. 深入理解依赖关系配置

? ? (1) 注入其他bean的属性值

? ? ? ? 配置片段:

? ? ? ??

? ? ? ??

<!-- 将其他bean的属性注入给当前正在定义bean的属性 -->        <bean id="son1" varlue="person" />           <!-- targetBeanName表示需要从id为person的bean获取属性,需要获取的属性为son -->             <property name="propertyPath" varlue="son" />          </bean>                  <!-- 使用嵌套bean,定义一个bean,并将该bean的某个属性 定义成一个新bean -->        <bean id="theAge2" >            <bean value="30" />            </bean>          </property>          <!-- 定义需要获取的属性名称 -->          <property name="propertyPath" value="age" />        </bean>

?

? ? ? ?

? ? (2) 注入其他bean的Field值,使用FieldRetrievingFactoryBean

? ? ? ? 配置片段:

? ? ? ??

? ? ? ??

<!-- 将指定的类的静态Field设置成bean的属性值 -->        <bean id="son"                   value="java.sql.Connection" />          <!-- targetField指定目标类的目标Field -->          <property name="targetField" value="TRANSACTION_SERIALIZABLE" />        </bean>                <!-- 将静态Field定义成一个bean的简单写法 -->        <bean id="theAge2" value="java.sql.Connection.TRANSACTION_SERIALIZABLE" />        </bean>

?

? ??

? ? (3) 注入其他Bean的方法返回值 MethodInvokingFactoryBean. 获得的方法的返回值既可以注入到指定的Bean实例,

? ? ? ? 也可以直接定义成Bean实例

? ? ? ??

? ? ? ? 配置片段:

? ? ? ?

 <!-- 提供方法的bean -->        <bean id="valueGenerator" />        <!-- 将一个bean的方法 返回值 注入 新bean的 age属性 -->        <bean id="son1" ref="valueGenerator" />              <property name="targetMethod" value="getValue" />            </bean>          </property>          </bean>        <!-- 上面 是调用非静态类对象的getValue()这种无参方法 -->                <!-- 调用静态类的静态方法,静态方法的返回值直接 定义成bean -->        <bean id="sysProps" value="java.lang.System" />          <property name="targetMethod" value="getProperties" />        </bean>        <!-- 调用无参 静态类的静态方法 创建bean name="staticMethod",value=静态类.静态方法-->        <bean id="myBean" value="xxx.MyStaticClass.myStaticMethod" />        </bean>                <!-- 有参数的方法调用,返回值 配置成一个bean -->        <bean id="javaVersion" ref="sysProps" />          <!-- 确定目标方法,确定调用bean的哪个方法 -->          <property name="targetMethod" value="getProperty" />          <!-- 确定调用目标方法的参数 相当于调用getProperty方法,传递参数"java.version" -->          <property name="arguments">            <list>              <value>java.version</value>            </list>          </property>           </bean>

?

?

?

热点排行