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==myobj1
会myobj==myobj1
。 那意味着它们是两个不同的实例 ?
那是正确的。
如果它有帮助,您还可以将Spring bean视为您将使用构造函数在Java代码中手动创建的实例。
通过在Spring XML文件中定义bean,该bean(Instance)在Spring的App Context中注册,然后该实例可以传递给代码的其他区域。
通过创建新bean,您可以有效地创建新实例。 因此,您可以创建同一类的任意数量的bean(实例)
每次调用beans.getBean(“myBean”)时,myBean都是一个Spring单例,它将始终返回相同的实例。 并且mySecondBean具有不同的id是另一个Spring单例。 您可以在同一ApplicationContext中使用相同类的不同单例bean。
你是对的。 测试它会告诉你。