Java教程

Spring对象的创建

本文主要是介绍Spring对象的创建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对象创建

若只有无参构造,那么在xml中产生容器时,就会调用无参构造,不管你有没有初始化,即,只要语句

ClassPathXmlApplicationContext

执行,那么,xml中的容器就会调用无参构造生成对象

如果有有参构造函数,则对应的生成有参对象,且只有一份。

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User usr = (User)context.getBean("usr");
User usrr = (User) context.getBean("usr");
System.out.println(usr == usrr);

结果为true

关于有参构造的xml的初始化

三种方式

  1. 用name
<bean id="usr2" class="com.jiwei.pojo.User">
    <constructor-arg name="name" value="ip"/>
    <constructor-arg name="age" value="1"/>
</bean>
  1. 用type, 不推荐, 不用

  2. 用index

<bean id="usr3" class="com.jiwei.pojo.User">
    <constructor-arg index="0" value="ioc"/>
    <constructor-arg index="1" value="1"/>
</bean>

即:在ClassPathXmlApplicationContext是就有了一份对象,而且只有一份。

User usr = (User)context.getBean("usr");
User usrr = (User) context.getBean("usr");
System.out.println(usr == usrr);  // true
usrr.change();  // 一起变化的,一块内存
System.out.println(usr == usrr);  // true
System.out.println(usr.toString());
System.out.println(usrr.toString());

true
true
User{name='Tom', age=19}
User{name='Tom', age=19}

这篇关于Spring对象的创建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!