通常,如果没有设置相应的配置,默认采用的无参构造函数创建对象。
<bean id="peo" class="com.bjsxt.pojo.People">
<!-- 通过参数 只当特定的构造函数 创建对象 -->
<constructor-arg type="java.lang.String" index="0" name="name" value="张三"> </constructor-arg>
<constructor-arg type="java.lang.String" index="2" name="address" value="四川-宜宾"></constructor-arg>
<constructor-arg type="java.lang.String" index="1" name="sexx" 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"/> 工厂方法