Spring构造函数

Spring构造函数

注意点

  • spring 在getBean已经创建了对象,并且每个id的对象有且仅有一份。
<?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
        http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--    1.默认调用无参构造-->
    <bean id="User" class="pojo.User"/>

<!--    2.当构造函数中参数有引用类型的时,并且有多个参数的时候。
          可以使用参数的在构造函数的索引以及参数的类型来指定构造函数,但是name指定更佳。-->
    <bean id="User1" class="pojo.User">
        <constructor-arg name="name" value="huyong"/>
        <constructor-arg name="age" value="21"/>
        <constructor-arg name="thing" ref="Thing"/>
    </bean>

    <bean id="Thing" class="pojo.Thing">
        <constructor-arg name="name" value="computer"/>
    </bean>

</beans>

测试类

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

public class MyTest {
    @Test
    public void test1(){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user = (User)context.getBean("User1");
        User user1 = (User)context.getBean("User1");
        System.out.println(user);
        System.out.println(user1==user);
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IEjipodn-1613183148798)(https://i.loli.net/2021/02/12/HIrFAc5KQGPOhV1.png)]

上一篇:Spring基础(二)


下一篇:SpringBoot中ApplicationContextAware获取上下文