Spring-IOC创建对象的方式(三)

我们平时创建对象的方式:

有参构造 、无参构造

我们来看看在Spring中怎么处理这两种情况

注意:导入spring的包

创建实体类

package org.west.pojo;

public class User {
    private String name;
    private String sex;
    private int age;

    public User() {
    }

    public User(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

Spring配置文件

1.通过注册bean来创建对象

    <bean id="user" class="org.west.pojo.User">
        <property name="name" value="猪猪"/>
        <property name="age" value="18"/>
        <property name="sex" value="女"/>
    </bean>

2.使用构造的参数的下标进行赋值

<!--使用构造的参数的下标进行赋值-->
<bean id="user2" class="org.west.pojo.User">
    <constructor-arg index="0" value="狗狗"/>
    <constructor-arg index="1" value="女"/>
    <constructor-arg index="2" value="10"/>
</bean>

3.通过名字来进行赋值

<!--通过名字来进行赋值-->
    <bean id="user3" class="org.west.pojo.User">
        <constructor-arg name="name" value="猫猫"/>
        <constructor-arg name="age" value="9"/>
        <constructor-arg name="sex" value="母"/>
    </bean>

4.通过类型进行赋值

<!--通过类型来进行赋值-->
    <bean id="user4" class="org.west.pojo.User">
        <constructor-arg type="java.lang.String" value="小猪猪"/>
        <constructor-arg type="java.lang.String" value="男"/>
        <constructor-arg type="java.lang.Integer" value="1"/>
    </bean>

编写测试类

package org.west.demo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.west.pojo.User;

public class TestDemo {
    @Test
    public void test(){

        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        User user = (User) context.getBean("user3");
        System.out.println(user);
    }

}

小结:

  • 通过有参构造

    • 通过下标

    • 通过参数名 【推荐】

    • 通过参数类型

  • 通过无参构造

    • 默认会用无参构造

注意点:一定要有一个无参构造方法

猜你喜欢

转载自www.cnblogs.com/xiaoqiqistudy/p/11296356.html