如何强制弹簧容器不返回bean的单例实例?

当我在BeanFactory上调用getBean(name)时,我得到了在应用程序上下文中定义的bean的实例。 但是,当我再次调用getBean(name)时(使用相同的名称),我得到了相同的bean实例。 我理解在某些(很多?)情况下这是如何可取的,但是如何告诉BeanFactory给我一个新实例呢?

示例Spring配置(简洁地说……我遗漏了一些冗长,但这应该得到重点):

    

示例Java:

 for(int i = 0;i++;i<=1) { ApplicationContext context = ClassPathXmlApplicationContext("context.xml"); Object o = context.getBean("beanA"); System.out.println(o.toString()); // Note: misc.BeanA does not implement // toString(), so this will display the OOID // so that we can tell if it's the same // instance } 

当我运行这个时,我会得到类似的东西:

 misc.BeanClass@139894 misc.BeanClass@139894 

请注意,两者都具有相同的OOID …所以这些是相同的实例…但我想要不同的实例。

你需要告诉spring你想要一个原型bean而不是一个单独的bean

  

这将为您提供每个请求的新实例。

默认范围是单例,但您可以将其设置为原型,请求,会话或全局会话。