Spring学习之—Spring IOC创建对象的三种方式

1. 使用无参构造函数创建对象

核心配置文件applicationContext.xml中添加如下内容:

 <bean id="us1" class="com.zzz.pojo.User"/>

2. 使用有参构造函数创建对象

核心配置文件applicationContext.xml中添加如下内容:

        <!--使用有参构造创建对象-->
        <bean id="us2" class="com.zzz.pojo.User">

                <!--name与构造方法参数名相同,而不是属性名-->
<!--                <constructor-arg name = "uid" value = "222" />-->
<!--                <constructor-arg name = "uname" value = "zzz"/>-->
<!--                <constructor-arg name = "uage" value= "12"/>-->
<!--                <constructor-arg name = "usex" value = "男"/>-->

                <!--index 下标从0开始,对应构造方法中的参数下标-->
                <constructor-arg index = "0" value = "222" />
                <constructor-arg index = "1" value = "zzz"/>
                <constructor-arg index = "2" value= "12"/>
                <constructor-arg index = "3" value = ""/>

                <!--
                type 一般不用
                value 一般为简单类型赋值
                ref 为引用数据类型赋值
                -->

        </bean>

3. 使用工厂模式创建对象

方案一:使用实例工厂 + 无参
  1. 准备一个工厂类

目录:springboot\spring01\src\main\java\com\zzz\factory\UserFactory.java

package com.zzz.factory;

import com.zzz.pojo.User;

public class UserFactory {

    public User getInstance(){

        return new User(123,"丽丽",30,"女");
    }
}

  1. 核心配置文件添加:
      <!-- 使用工厂模式 创建对象
             1. 创建工厂对象
             2. 根据工厂对象,创建User对象
         -->

        <bean id="factory" class="com.zzz.factory.UserFactory"/>
        <bean id="us3" factory-bean="factory" factory-method="getInstance"/>
方案二:使用静态工厂 + 无参
  1. 准备一个工厂类

目录:springboot\spring01\src\main\java\com\zzz\factory\UserFactory.java

package com.zzz.factory;

import com.zzz.pojo.User;

public class UserFactory {

    public static User getInstance(){

        return new User(123,"丽丽",30,"女");
    }
}

  1. 核心配置文件添加:
    <!--使用静态工厂模式-->
        <bean id="us4" class="com.zzz.factory.UserFactory" factory-method="getInstance"/>
方案三:使用实例工厂 + 有参
  1. 准备一个工厂类

目录:springboot\spring01\src\main\java\com\zzz\factory\UserFactory.java

package com.zzz.factory;

import com.zzz.pojo.User;

public class UserFactory {

    public User getInstance(User user){

        return user;
    }
}

  1. 核心配置文件添加:
		<bean id="us1" class="com.zzz.pojo.User"/>
    	<!--使用实例工厂类 +有参-->
        <bean id="factory" class="com.zzz.factory.UserFactory"/>
        <bean id="us5" factory-bean="factory" factory-method="getInstance">
                <constructor-arg name="user" ref="us1"></constructor-arg>
        </bean>
方案四:使用静态工厂 + 有参
  1. 准备一个工厂类

目录:springboot\spring01\src\main\java\com\zzz\factory\UserFactory.java

package com.zzz.factory;

import com.zzz.pojo.User;

public class UserFactory {

    public static User getInstance(User user){

        return user;
    }
}

  1. 核心配置文件添加:
		<bean id="us1" class="com.zzz.pojo.User"/>
     	<!--使用静态工厂类 +有参-->
        <bean id="us6" class="com.zzz.factory.UserFactory" factory-method="getInstance">
                <constructor-arg name="user" ref="us1"></constructor-arg>
        </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值