• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

IOC创建对象的方式

开发技术 开发技术 3小时前 1次浏览

一、通过无参构造函数
实体类

public class User {
    private String name;

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

    public String getName() {
        return name;
    }

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

配置文件

<bean id="user" class="com.yyll.pojo.User">
        <property name="name" value="wwbao"/>
</bean>

测试类

public class MyTest {
    public static void main(String[] args) {
        // 实例化spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        // 获取user对象
        User user = context.getBean("user", User.class);

        System.out.println(user); // User{name='wwbao'}
    }
}

new ClassPathXmlApplicationContext("beans.xml");时 user对象已经创建了 且在Spring容器中仅有一个实例


二、有参构造函数

  1. 通过index下标方式注入
  2. 通过name名称注入
  3. 通过type类型注入

实体类

public class User {
    private String name;
	
	public User(String name) {
        this.name = name;
    }

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

    public String getName() {
        return name;
    }

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

配置文件

<!--通过下标  public User(String name,xxx) 下标从0开始-->
<bean id="user" class="com.yyll.pojo.User">
        <constructor-arg index="0" value="yyll"/>
</bean>


<!--通过type 如果是引用类型 需要写上全限定类名-->
<bean id="user" class="com.yyll.pojo.User">
	<constructor-arg type="java.lang.String" value="yyds"/>
</bean>

 <!--通过name-->
<bean id="user" class="com.yyll.pojo.User">
	<constructor-arg name="name" value="666"/>
</bean>

测试类

public class MyTest {
    public static void main(String[] args) {
        // 实例化spring容器
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        // 获取user对象
        User user = context.getBean("user", User.class);
		User user1 = context.getBean("user", User.class);
		
        System.out.println(user == user1); // true

        System.out.println(user); // User{name='yyll'}
    }
}


程序员灯塔
转载请注明原文链接:IOC创建对象的方式
喜欢 (0)