3、Spring IOC创建对象方式一:
01、使用无参构造方法
//id:唯一标识 class:当前创建的对象的全局限定名
<bean id="us1" class="com.msb.pojo.User"/>
02、使用有参构造
<bean id="us2" class="com.msb.pojo.User">//name值 = 构造方法参数名 相同,而不是属性名<constructor-arg name="uid" value="222" /><constructor-arg name="uname" value="李四" /><constructor-arg name="uage" value="30" /><constructor-arg name="usex" value="男" /></bean><bean id="us2" class="com.msb.pojo.User">//index[下标从0开始],对应构造方法里的参数下标//type://value:一般为简单类型赋值//ref:一般为引用类型赋值<constructor-arg index= "0" value="222" /><constructor-arg index = "1" value="李四" /><constructor-arg index = "2" value="30" /><constructor-arg index="3" value="男" /></bean>
03、使用工厂模式构造
设计模式:为解决某一类问题而产生的
工厂设计模式:可以达到对象的统一管理,可以批量产生某一类对象
1)方案一:使用实例工厂类 + 无参
public class UsersFactory{public User getInstance(){return new User(123,"李思思",30,"女");}
}
---在applicationContext.xml中
01、先实例工厂对象,
02根据工厂对象创建对应的Bean对象
<!--UserFactory factory=new usersFactory()-->
<bean id="factory" class="com.msb.factory.usersFactory"/><bean id="us3" factory-bean="factory" factory-method="getInstance"/>
2)方案二:使用静态工厂类 + 无参
public class UsersFactory{public static User getInstance(){return new User(123,"李思思",30,"女");}
}
---在applicationContext.xml中
直接指定哪个工厂类的哪个方法生成对应的Bean对象
<!--User user2=UsersFactory.getStaticInstance-->
使用静态工厂模式
<bean id="us4" class="com.msb.factory.UsersFactory" factory-method="getStaticInstance"/>
3)方案三:使用实例工厂类 + 有参
public class UsersFactory{public User getInstance1(User user){return user;}
}
---在applicationContext.xml中
01、先实例工厂对象,
02根据工厂对象创建对应的Bean对象
<!--UserFactory factory=new usersFactory()-->
<bean id="factory" class="com.msb.factory.usersFactory"/>
<!--User user3=factory.getInstance(us)-->
<bean id="us5" factory-bean="factory" factory-method="getInstance1"><constructor-arg name="user" ref="us1"></constructor-arg>
</bean>
4)方案一:使用静态工厂类 + 有参
public class UsersFactory{public static User getInstance(){return new User(123,"李思思",30,"女");}
}
---在applicationContext.xml中
直接指定哪个工厂类的哪个方法生成对应的Bean对象,同时设置参数
<!--User user2=UsersFactory.getStaticInstance2(us)-->
<bean id="us6" class="com.msb.factory.UsersFactory" factory-method="getStaticInstance2"><constructor-arg name="user" ref="us1"></constructor-arg>
</bean>