IOC实现的方式:
[1]使用无参构造
<bean id="stu2" class="com.bjsxt.spring2.Student"></bean>
[2]使用有参构造
<bean id="stu3" class="com.bjsxt.spring2.Student">
<!--<constructor-arg name="a" value="18"></constructor-arg>
<constructor-arg name="name" value="zs"></constructor-arg>
<constructor-arg name="sex" value="男"></constructor-arg>-->
<constructor-arg name="a" index="1" type="int" value="123"></constructor-arg>
<constructor-arg name="b" index="0" type="java.lang.String" value="456"></constructor-arg>
</bean>
<!--使用有参构造创建对象-->
<!--
Student stu3=new Student(18,zs,男);
注意
[1]name属性和形参的名称保持一致的
[2]形参的顺序不用和标签的顺序一致
[3]我们使用name属性进行调用
但是除了name属性还有index(从0)
type :数据类型
建议三者都写上即可
-->
[3]工厂模式
设计模式:设计模式是为了解决某一类问题的产生
工厂模式就是批量生产对象的
<!--【3】使用工厂模式创建对象-->
<!-- Factory factory=new Factory();-->
<bean id="factory" class="com.bjsxt.spring3.Factory"></bean>
<!-- factory.getInstance("tea");-->
<bean id="be" factory-bean="factory" factory-method="getInstance">
<constructor-arg name="param" value="stu"></constructor-arg>
</bean>
<!--静态修饰的方法-->
<!--Factory.getInstance2('stu')-->
<bean id="be2" class="com.bjsxt.spring3.Factory" factory-method="getInstance2">
<constructor-arg name="param" value="stu"></constructor-arg>
</bean>
package com.bjsxt.spring3;
public class Factory {
public People getInstance(String param){
if("stu".equals(param)){
return new Student();
}else if("tea".equals(param)){
return new Teacher();
}
return null;
}
public static People getInstance2(String param){
if("stu".equals(param)){
return new Student();
}else if("tea".equals(param)){
return new Teacher();
}
return null;
}
}