Spring的IOC创建对象方式

Spring中文文档:https://docs.spring.io/spring-framework/docs/5.2.0.RELEASE/spring-framework-reference/core.html#beans-factory-metadata

可分为有参创建和无参创建

Spring的IOC创建对象时只要写在XML文件中的都会进行创建如下代码

User.java

package pojo;

public class User {
    private String name;

    public User()
    {
        System.out.println("User的无参构造");
    }
    public User(String name)
    {
        System.out.println("User的有参构造"+name);
        this.name=name;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public void show()
    {
        System.out.println("name="+name);
    }

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

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- services -->
    <!--  无参构造创建对象  -->
    <bean id="user" class="pojo.User">
        <property name="name" value="苗可卓"/>
    </bean>
    <!--  有参方式创建对象  -->
    <!--  下标方式创建有参构造  -->
    <bean id="user1" class="pojo.User">
        <constructor-arg index="0" value="苗可卓1"/>
    </bean>
    <!--  参数类型创建  -->
    <bean id="user2" class="pojo.User">
    <constructor-arg type="java.lang.String" value="苗可卓2"/>
    </bean>
</beans>

mytest.java

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

public class mytest {

    public static void main(String[] args) {
        ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml");
        User user=(User) context.getBean("user1");
        user.show();
    }

}

输出结果

 

 

 

 

分析:只要是在xml中的bean对象都会被创建好,调用时即可使用

 

posted @ 2021-07-04 17:17  yizhixiaozhu  阅读(54)  评论(0编辑  收藏  举报