1、通过构造器创建一个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.xsd">
<bean name="product" class="app15a.bean.Product"/>
</beans>
ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"spring-config.xml"});
Product product=context.getBean("product",Product.class);
product.setName("Excellent snake oil");
2、通过工厂方法创建一个bean实例
<bean id="calendar" class="java.util.Calendar" factory-method="getInstance"/>
ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"spring-config.xml"});
Calendar calendar=context.getBean("calendar",Calendar.class);
3、向构造器传递参数
(1)通过参数名传递参数
<bean name="featuredProduct" class="app15a.bean.Product">
<constructor-arg name="name" value="Ultimate Olive Oil"/>
<constructor-arg name="description" value="The purest olive oil on the market"/>
<constructor-arg name="price" value="9.95"/>
</bean>
(2)通过下标传递参数
index="0" index="1"
注:对应构造器的所有参数必须传递,缺一不可;
4、setter方式依赖注入
<bean name="simpleAddress" class="app15a.bean.Address">
<constructor-arg name="line1" value="151 Corner Street"/>
<constructor-arg name="line2" value=""/>
<constructor-arg name="city" value="Albany"/>
<constructor-arg name="state" value="NY"/>
<constructor-arg name="zipCode" value="99999"/>
<constructor-arg name="country" value="US"/>
</bean>
<bean name="employee1" class="app15a.bean.Employee">
<property name="homeAddress" ref="simpleAddress"/>
<property name="firstName" value="Junior"/>
<property name="lastName" value="Moore"/>
</bean>
homeAddress属性配置的是simpleAddress对象的引用。
5、构造器方式依赖注入
<bean name="employee1" class="app15a.bean.Employee">
<constructor-arg name="homeAddress" ref="simpleAddress"/>
<constructor-arg name="firstName" value="Junior"/>
<constructor-arg name="lastName" value="Moore"/>
</bean>