Есть ли у аннотации @Scope(BeanDefinition.SCOPE_PROTOTYPE) какие-либо преимущества или отличия от аннотации @Scope("prototype")?

2
Jonathan Ferreira 26 Фев 2020 в 00:31

2 ответа

Лучший ответ

Они делают то же самое, что означает, что вы можете поменять их местами и не показывает разницы в поведении.

Есть ли у аннотации @Scope (BeanDefinition.SCOPE_PROTOTYPE) какие-либо преимущества?

Преимущество, которое я могу себе представить, заключается в том, что когда вы используете предварительно определенные константы, у вас есть преимущество в том, что вы избегаете опечаток и экономите свое время вместо объявления строковых литералов.

1
Santhosh K Thadka 26 Фев 2020 в 04:26

Оба выражения являются эквивалентами, BeanDefinition.SCOPE_PROTOTYPE является константой в ConfigurableBeanFactory с текстовым " prototype "который используется в BeanDefinition интерфейс:

/**
 * Scope identifier for the standard prototype scope: {@value}.
 * <p>Note that extended bean factories might support further scopes.
 * @see #setScope
 * @see ConfigurableBeanFactory#SCOPE_PROTOTYPE
 */
String SCOPE_PROTOTYPE = ConfigurableBeanFactory.SCOPE_PROTOTYPE;

Как предложено @ santossh-kumhar, основное преимущество заключается в том, что использование константы SCOPE_PROTOTYPE вместо текста "prototype" более безопасно при опечатке.

0
SHoko 26 Фев 2020 в 11:55