自学内容网 自学内容网

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)!