Spring 学习——依赖注入之注入集合

一般的集合注入大致相同这里值写出两种

如您所知,Java内部类是在其他类的范围内定义的,类似地,内部bean是在另一个bean的范围内定义的bean。因此,<property />或<constructor-arg />标签中的<bean />标签称为内部bean,如下所示。

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id = "outerBean" class = "...">
      <property name = "target">
         <bean id = "innerBean" class = "..."/>
      </property>
   </bean>

</beans>

集合的注入

list注入

在list注入中需要注意一个属性,例如:<list value-type="java.lang.String">,这里的value-type属性定义了了value标签的类型,并且要注入这里指定的类型必须时全类名例如:java.lang.String,当然也可以在value标签中指定类型,因为在value标签中有个type属性

<bean id = "javaCollection" class = "com.tutorialspoint.JavaCollection">
      <!-- results in a setAddressList(java.util.List) call -->
      <property name = "addressList">
         <list value-type="java.lang.String">、
            <!-- 这里 这样写时不会报错的,亲测有效 -->
            <value type="java.lang.Integer">1</value>
            <value>Pakistan</value>
            <value>USA</value>
            <value>USA</value>
         </list>
      </property>
</beans>

map注入

但是map注入有一个key-type属性可以定义map的key属性,同样也定义了value-type属性来指定value的值,并且

<!-- results in a setAddressSet(java.util.Set) call -->
<property name = "addressMap">
         <map key-type="java.lang.String" value-type="java.lang.String">
            <entry key = "1" value = "INDIA"/>
            <entry key = "2" value = "Pakistan"/>
            <entry key = "3" value = "USA"/>
            <entry key = "4" value = "USA"/>
         </map>
</property>

猜你喜欢

转载自blog.csdn.net/qq_40929531/article/details/87866235