spring singleton scope-每个bean每个容器

我在问我的问题时问这个问题:

弹簧单体范围

Spring singleton在参考手册中定义为每个bean的容器

每个容器意味着如果我们喜欢:

ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml") MyBean myobj=(MyBean)context.getBean("myBean"); //myBean is of singleton scope. MyBean myobj1=(MyBean)context.getBean("myBean"); 

beans.xml中:

  

然后myobj==myobj1将出现true.Means都指向同一个实例

对于每个bean每个bean的每个部分短语我有点困惑。 我正确地关注每个豆子

如果我们喜欢

 ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml") MyBean myobj=(MyBean)context.getBean("myBean"); MyBean myobj1=(MyBean)context.getBean("mySecondBean"); 

beans.xml中:

   

然后myobj==myobj1myobj==myobj1 。 那意味着它们是两个不同的实例

那是正确的。

如果它有帮助,您还可以将Spring bean视为您将使用构造函数在Java代码中手动创建的实例。

通过在Spring XML文件中定义bean,该bean(Instance)在Spring的App Context中注册,然后该实例可以传递给代码的其他区域。

通过创建新bean,您可以有效地创建新实例。 因此,您可以创建同一类的任意数量的bean(实例)

每次调用beans.getBean(“myBean”)时,myBean都是一个Spring单例,它将始终返回相同的实例。 并且mySecondBean具有不同的id是另一个Spring单例。 您可以在同一ApplicationContext中使用相同类的不同单例bean。

你是对的。 测试它会告诉你。