Spring(创建对象的方式3个)
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>
原文地址:https://blog.csdn.net/lxpeifa/article/details/136778819
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!