Мы обновляем Spring 3.2.4 до Spring 4.3.8, в которой singleton = "false" больше не поддерживается. Как можно установить синглтон false в Spring 4.3.8? Если singeton = "false", значит ли это, что область видимости компонента Spring стала "Prototype"?
Вы можете использовать @Scope для указания прототипа bean-компонента.
Example:@Bean @Scope("prototype")
public Person personPrototype() {
return new Person();
}
для дальнейшего чтения следуйте ссылка на сайт
Насколько я помню, singleton=false был сохранен по некоторым причинам совместимости, что также указано в некоторых более старых документы, например 3.0.0.M3:
<bean id = "accountService" class = "com.foo.DefaultAccountService"/>the following is equivalent, though redundant (singleton scope is the default); using spring-beans-2.0.dtd
<bean id = "accountService"> class = "com.foo.DefaultAccountService" scope = "singleton"/>the following is equivalent and preserved for backward compatibility in spring-beans.dtd
<bean id = "accountService"> class = "com.foo.DefaultAccountService" singleton = "true"/>
В любом случае, весенняя область действия по умолчанию - singleton, поэтому даже если не указано иное, но можно изменить на prototype (или что угодно) с помощью:
scope = "prototype"@Scope("prototype") или @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)Правильно, scope = "prototype" является прямым эквивалентом singleton = "false".