Spring IoC контейнер: ограничения стандартных аннотаций JSR 330
При работе со стандартными аннотациями вы должны знать, что некоторые важные функции недоступны, как показано в следующей таблице:
Spring |
javax.inject.* |
javax.inject ограничения/комментарии |
---|---|---|
@Autowired | @Inject | @Inject не имеет атрибута 'required'. Вместо этого может использоваться с Optional Java 8. |
@Component | @Named / @ManagedBean | JSR-330 не предоставляет составную модель, только способ идентифицировать именованные компоненты. |
@Scope("singleton") |
@Singleton | Область действия JSR-330 по умолчанию похожа на прототип (prototype) в Spring. Тем не менее, чтобы поддерживать его в соответствии с общими значениями по умолчанию Spring, bean-компонент JSR-330, объявленный в контейнере Spring, по умолчанию является одноэлементным (singleton). Чтобы использовать область, отличную от singleton, вы должны использовать аннотацию Spring @Scope. javax.inject также предоставляет аннотацию @Scope. Тем не менее, она предназначена только для создания ваших собственных аннотаций. |
@Qualifier | @Qualifier / @Named | javax.inject.Qualifier - это просто мета-аннотация для создания пользовательских квалификаторов. Конкретные String квалификаторы (например, @Qualifier со значением в Spring) могут быть связаны через javax.inject.Named. |
@Value | - | нет эквивалента |
@Required | - | нет эквивалента |
@Lazy | - | нет эквивалента |
ObjectFactory | Provider | javax.inject.Provider является прямой альтернативой Spring ObjectFactory, только с более коротким именем метода get(). Его также можно использовать в сочетании с Spring @Autowired или с аннотированными конструкторами и методами установки. |
Читайте также:
- Spring IoC контейнер: использование стандартных аннотаций JSR 330, внедрение зависимостей с @Inject и @Named
- Spring IoC контейнер: аннотации JSR 330, @Named и @ManagedBean - стандартные эквиваленты аннотации @Component
- Spring IoC контейнер: сканирование classpath, определение метаданных компонента в компонентах
Комментарии
Отправить комментарий