构造器方式
<bean id="man" class="com.yalunwang.xmlconfig.Man" > <constructor-arg ref="busCar"/> </bean>这样就会在创建man实例的时候调用有参构造器,将id为busCar的bean实例注入进去。 我们也可以注入非引用类型即字面值:
<bean id="busCar" class="com.yalunwang.xmlconfig.BusCar" > <constructor-arg name="carName" value="浦东2路"></constructor-arg> </bean>xml还支持多种类型的注入,例如list.大家都知道公交车有很多的站点所以我们新增一个字段stationList用来存放站点列表。 我们也可以注入list类型
<bean id="busCar" class="com.yalunwang.xmlconfig.BusCar" > <constructor-arg name="carName" value="浦东2路"></constructor-arg> <constructor-arg name="stationList"> <list> <value>高科中路</value> <value>宜山路</value> <value>桂林路</value> </list> </constructor-arg> </bean>同样的我们也可以使用<set> <map> <array>等来装配。
我们编写测试类来测试一下:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring-test.xml"}) public class Test { @Autowired private Car car; @org.junit.Test public void testBusCar() { car.notice(); car.printStationList(); } @Autowired private People people; @org.junit.Test public void testPeople() { people.drive(); } }两个方法的输出分别是
浦东2路南京西路到了 站名:高科中路 站名:宜山路 站名:桂林路 男司机:小明 浦东2路南京西路到了下面来看属性注入