在
@Configuration课堂上,
@Bean像这样的方法
@Bean@Scope("prototype")public Thing thing(String name) { return new Thing(name);}用于注册bean定义并提供创建bean的工厂。它定义的bean仅在请求时使用直接或通过扫描确定的参数实例化
ApplicationContext。
对于
prototypebean,每次都会创建一个新对象,因此@Bean也会执行相应的方法。
你可以
ApplicationContext通过的
BeanFactory#getBean(String name, Object... args)方法检索
Bean,该方法指出
允许指定显式构造函数自变量/工厂方法自变量,覆盖Bean定义中指定的默认自变量(如果有)。
参数:
如果使用静态工厂方法的显式参数创建原型,则使用args参数。在任何其他情况下,使用非null参数值都是无效的。
换句话说,对于此
prototype作用域的bean,你将提供将要使用的参数,而不是在bean类的构造函数中,而是在
@Bean方法调用中。
对于Spring 4+版本至少是这样。



