[Spring]2.ioc创建对象的方式

新建实体类

image

1. 无参构造方法(Set注入)

    <bean id="user1" class="com.wang.pojo.User">
        <property name="name" value="wxz1"/>
    </bean>
    @Test
    public void Test1(){
        //获取spring的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user = (User)context.getBean("user1");
        System.out.println(user.toString());
    }

image
如果没有无参构造方法,则会报错。
使用无参构造函数,实际上就是使用set方法来注入。

2. 有参构造方法(构造器注入)

  • 通过参数的顺序来赋值:
    <bean id="user2" class="com.wang.pojo.User">
        <constructor-arg index="0" value="wxz2"/>
    </bean>
  • 通过参数的类型来赋值(不推荐使用)
    <bean id="user3" class="com.wang.pojo.User">
        <constructor-arg type="java.lang.String" value="wxz3"/>
    </bean>
  • 通过参数名来赋值:
    <bean id="user4" class="com.wang.pojo.User">
        <constructor-arg name="name" value="wxz4"/>
    </bean>

image


  • 在配置文件加载时,对象就已经初始化了。
  • 每次getbean,拿到的都是同一个对象
posted @ 2021-11-23 14:08  从零开始学java_wxz  阅读(52)  评论(0)    收藏  举报