实例的话问题

实例的话问题

我创建了2个类, 获取同一个ioc中的同一个对象,打印对象地址是一样的,我在第一个对象中对title变量赋值,为什么第二个类中提取出是null呢?明明指向的是同一个对象阿。

public class SpringApplication {
public static void main(String[] args) {
//ApplicationContext是一个接口,所有这个接口的实现类的唯一职责就是初始化ioc容器,实例对象
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Apple apple=context.getBean("apple1", Apple.class);
apple.setTitle("1111");
System.out.println(apple.getTitle());
}
}

结果:

com.imooc.spring.ioc.entity.Apple@43814d18

1111

public class test {
public static void main(String[] args) {
//ApplicationContext是一个接口,所有这个接口的实现类的唯一职责就是初始化ioc容器,实例对象
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
Apple apple=context.getBean("apple1", Apple.class);
System.out.println(apple);
System.out.println(apple.getTitle());
}
}

结果:

com.imooc.spring.ioc.entity.Apple@43814d18

null


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕小脸 2021-05-19 12:19:02

同学你好,单例模式是全局只有一个对象,不论谁去new,都会是那一个,所以线程是安全的

祝学习愉快~

  • 提问者 rock221 #1

    http://img1.sycdn.imooc.com//climg/60a492280901efb712000892.jpg

    我描述也是同一个对象啊,然后赋值, 是不是这种安全问题只是有可能会出现,就是一个bug,不会都出现。。

    2021-05-19 12:21:52
  • 好帮手慕小脸 回复 提问者 rock221 #2

    同学你好,是的,同学的理解是正确的

    祝学习愉快~

    2021-05-19 15:26:47
好帮手慕小脸 2021-05-18 15:24:32

同学你好,理解是正确的,但有一点要注意:类名的首字母要大写,如test应更改为Test

祝学习愉快~

  • 提问者 rock221 #1

    但是有个疑问,为啥每次new 出来的context 加载ioc 创建的对象都是同一个呢?? 

    2021-05-18 15:27:03
  • 好帮手慕小脸 回复 提问者 rock221 #2

    同学你好,​因为指向的都是同一个对象,所以地址值是一样的

    祝学习愉快~

    2021-05-18 18:17:15
  • 提问者 rock221 回复 好帮手慕小脸 #3

    但是new的话,指向的都是一个类的对象,每次new的地址都不一样阿。  这里是因为创建了apple1的对象,第二次读取的时候,识别到了第一次已创建了,所以就不会再创建了,对吗? 这个context 是spring提供的,全局唯一吧? 不管new了多少个context, 它运行了创建过对应的对象了,就不会重复创建了。 

    2021-05-18 18:20:47
rock221 提问者 2021-05-18 12:24:20

老师,为什么没有使用static静态,多次创建

new ClassPathXmlApplicationContext

这个对象,ioc容器只创建了一次里面的对象呢?  我提的问题之所以没有赋值成功,是因为我们获取的对象,只是ioc初始化的对象,至于当前set赋值,是针对当前局部优先吧, 它并不会同步到ioc容器中的对象中。 是这个意思吧

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师