上篇介绍了Spring IOC容器管理Bean的几种方式,IOC容器会帮助我们管理配置好的Bean及其之间的依赖关系。
除了管理我们自定义的类之间的依赖关系,Spring还可以帮助我们注入一些常用的属性。比如String、int、List、Set等~
比如下面Bean1这个类,IOC容器在启动的时候也可以自动为它的这些属性赋值。
public class Bean1 { private String strValue; private int intValue; private List listValue; private Set setValue; private String[] arrayValue; private Map mapValue; //setter、getter }
这里仍然用setter注入的方式为Bean1的属性赋值,配置如下:
<bean id="bean1" class="com.danny.spring.Bean1"> <property name="strValue"> <value>Hello_Spring</value> </property> <property name="intValue" value="123456"></property> <property name="listValue"> <list> <value>list1</value> <value>list2</value> </list> </property> <property name="setValue"> <set> <value>set1</value> <value>set2</value> </set> </property> <property name="arrayValue"> <list> <value>array1</value> <value>array2</value> </list> </property> <property name="mapValue"> <map> <entry key="k1" value="v1"></entry> <entry key="k2" value="v2"></entry> </map> </property> </bean>
启动Spring容器,分别打印每个属性的值: ``` public void testInjection(){ Bean1 bean1=(Bean1)beanFactory.getBean("bean1"); System.out.println(bean1.getStrValue()); System.out.println(bean1.getIntValue()); System.out.println(bean1.getListValue()); System.out.println(bean1.getSetValue()); System.out.println(bean1.getArrayValue()); System.out.println(bean1.getMapValue()); } ```
测试结果如下:
Hello_Spring 123456 [list1, list2] [set1, set2] [Ljava.lang.String;@3465f515 {k1=v1, k2=v2}