`
leiwuluan
  • 浏览: 697123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

spring 注入参数(Injection Parameters)

阅读更多

(1)简单的值注入

将简单的值注入到beans里面是很简单的。如果需要,只需要简单地在配置标记中指定值,将其封装在一个<value>标记中,默认情况,<value>标记不仅能读取String值,而且也可以将这些值转换到任何原生数据类型或者原生封装类。

示例:

Bean

public class InjectSimple{

private String name;

private int age;

private float height;

private boolean isProgrammer;

private Long ageInSeconds;

//property set method……

}

配置Bean

<bean id=”injectSimple” class=”com.bean.InjectSimple”>

<property name=”name”>

    <value>John Smith</value>

</property>

<property name=”age”>

    <value>35</value>

</property>

<property name=”height”>

    <value>1.78</value>

</property>

<property name=” isProgrammer”>

    <value>true</value>

</property>

<property name=” ageInSeconds”>

    <value>1103760000</value>

</property>

</bean>

 

(2)在同一个工厂注入Beans

Spring允许使用<ref>标记将一个bean注入到另一个bean

 

示例

Bean

public class InjectRef{

private Oracle oracle;

public void setOracle(Oracle oracle){

    this. oracle = oracle;

}

}

配置Bean

<bean id=”injectRef” class=”com.bean.InjectRef”>

<property name=”oracle”>

    <ref local=”oracle”/>

</property>

</bean>

<bean id=”oracle” class=”com.bean.Oracle”/>

注:

<ref>标记使用local属性,那么意味着<ref>标记仅仅通过beanid属性查找,而不通过任何别名查找。通过别名查找可以使用bean属性。如:

<bean id=”injectRef” class=”com.bean.InjectRef”>

<property name=”oracle”>

    <ref bean=” wiseworm”/>

</property>

</bean>

<bean id=”oracle” name=”wiseworm” class=”com.bean.Oracle”/>

 

 

(3)使用集合进行注入

很多时候,你的Bean需要访问对象的集合,而不是访问一个单一的bean或者值。因此,理所当然的,Spring允许你在你的一个bean中注入一个对象的集合。使用集合很简单:你可以选择<list><map><set>或者<props>来描述ListMapSet或者Properties的实例,然后你就像在其他注入中所用到的方式一样传递这些对象。这个<props>标记只允许传递String值,因为Properties类只允许String作为属性的值。当使用<list><map>或者<set>时,你可以使用注入到属性时的任何可用标记,甚至可以是其他的集合标记。这样,允许你传递存储MapList,存储SetMap,甚至是像List存储MapMap存储SetSet中存储List这样的嵌套!

 

示例代码:

public class CollectionDI{

private Map map;

private Set set;

private List list;

private Properties props;

 

//setter method……

 

}

 

配置文件:

<bean  id=”collectionDI” class=”com.spring.CollectionDI”>

<property name=”map”>

  <map>

    <entry key=”key1”>

      <value>Lily</value>              //<ref bean=”user”/>

    </entry>

  </map>

</property>

 

<property name=”set”>

  <set>

    <value>Jack</value>               //<ref bean=”user”/>

  </set>

</property>

 

<property name=”list”>

  <list>

    <value>Tom</value>               //<ref bean=”user”/>

  </list>

</property>

 

<property name=”props”>

  <props>

    <prop key=”username”> 

Jack               //只能给properties实例的每个属性指定一个String的值

</prop>

  </props>

</property>

 

</bean>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics