1、通过调用无参构造方法
1.1 默认情况,不需要使用任何配置
2、调用有参数构造方法
2.1 在类中生成有参构造方法
2.2 <constuctor-arg/> 配置构造方法参数
2.3 type 参数类型
2.4 index 索引(在方法中参数的位置,从0开始)
2.5 name 参数名称(属性名称)
2.5 value 参数值
2.6 ref 如果参数是对象时使用ref引用另一个<bean>的id
<bean id="peo" class="com.xxx.pojo.People">
<constructor-arg type="int" value="123"></constructor-arg>
<constructor-arg type="java.lang.String" name="name" index="1" value="张三">
</constructor-arg>
<constructor-arg type="java.lang.String" name="address" index="2" value="朝阳">
</constructor-arg>
</bean>
3、通过静态工厂
3.1 创建静态工厂类
3.1.1 明显标志:方法是static,可以通过类名.方法名调用方法
public class ClientService {
private static ClientService clientService = new ClientService();
private ClientService() {}
public static ClientService createInstance() {
return clientService;
}
}
3.2 创建对象
<bean id="clientService" class="examples.ClientService" factory-method="createInstance"/>
4、通过实例工厂
4.1 先创建工厂类
public class DefaultServiceLocator {
private static ClientService clientService = new ClientServiceImpl();
private DefaultServiceLocator() {}
public ClientService createClientServiceInstance() {
return clientService;
}
}
4.2 创建工厂对象
<bean id="serviceLocator" class="examples.DefaultServiceLocator"></bean>
4.3 创建最终的对象
<bean id="clientService" factory-bean="serviceLocator"
factory-method="createClientServiceInstance"/>