两次new出来的对象为什么会是同一个

问题遇到的现象和发生背景

两次调用了new方法,但是最后创建的两个对象地址相同

问题相关代码,请勿粘贴截图
<bean id="com" class="com.LL.sp4.Computer"></bean>
@Configuration//表示该类可以作为bean定义的来源
public class Computer {
    @Bean
    public Screen getScreen(){
        System.out.println("调用了配置信息");
        return new Screen();
    }
}


    ApplicationContext context =
                new AnnotationConfigApplicationContext(Computer.class);
        Screen bean = context.getBean(Screen.class);
        Screen bean2 = context.getBean(Screen.class);
        System.out.println(bean);
        System.out.println(bean2);
        System.out.println(bean==bean2);
运行结果及报错内容

img


最后输出两个对象的地址相同,是同一个对象

我的解答思路和尝试过的方法
我想要达到的结果

输出为false

下面这个代码的意思是:定义一个bean,spring框架启动过程中会自动执行这个getScreen方法,生产一个bean。因为默认是单例模式,后续每次getBean都会拿前面生产的那个,并不是你想的每次都执行getScreen。

@Bean
    public Screen getScreen(){
        System.out.println("调用了配置信息");
        return new Screen();
    }

不是只调用了一次new 吗?
调用了getScreen方法会打印内容:调用了配置信息
控制台上只看到了一次打印呀

Spring管理的bean默认单例,指定为prototype就不是一个对象了

因为Spring的的bean配置默认是单例模式,即加入到Spring容器中的bean对象全局唯一,不管你getBean多少次,获取到的都是同一个对象。
如果想要结果为false,那么修改Spring的bean配置中scope属性来配置作用域,将scope配置成prototype,模式设为原型模式,这样每次get都会创建新的对象

<bean id="com" class="com.LL.sp4.Computer" scope=“prototype”></bean>
```xml




```

你new了一次,调用了两次同一个context的getBean,结果当然一样