栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring中Ioc创建对象的方式(有参构造)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring中Ioc创建对象的方式(有参构造)

Ioc创建对象有两种形式,分别是有参构造和无参构造,无参构造是Spring的默认创建对象的方式。

下边我们先看无参构造

先给出一个实体类

package com.zkw.pojo;

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

    public User() {
        System.out.println("User的无参构造!!!!");
    }

    public String getAge() {
        return age;
    }

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

    public String getName() {
        return name;
    }

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

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

然后把实体类托管到IoC容器里边




    
        
        
    


测试类

import com.zkw.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
    
       ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
       User user = (User) context.getBean("user");
       System.out.println(user.toString());
       User user1 = context.getBean("user",User.class);
       System.out.println(user == user1);
    }
}

结果如下


在这里可以看到我们并没有new User对象,但是我们还是可以拿到User的无参构造,这就说明是spring帮我们创建了这个对象,而user对象创建是在 new ClassPathXmlApplicationContext(“beans.xml”);的时候创建;在 context.getBean(“user”);的时候被引用。并且我们可以随意拿,它表示是同一个对象。

有参构造共有三种方式:第一种,通过下标对构造器参数赋值;第二种,使用参数的基本类型来进行赋值(类型相同按照顺序赋值);第三种 使用它本身来进赋值(常用)

实体类 只需要再加一个有参构造就可以了

package com.zkw.pojo;

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

    

    public User(String age, String name) {
        System.out.println("User的有参构造!!!!!");
        this.age = age;
        this.name = name;
    }

    public String getAge() {
        return age;
    }

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

    public String getName() {
        return name;
    }

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

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







    





  
      
      
  


其它不变,结果如下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322715.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号