@javax.enterprise.context.RequestScoped
public class CurrencyConverter { ... }
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
Инъецирование зависимостей позволяет превращать обычные классы Java в Managed-бины и инъецировать их в любой другой Managed-бин. Используя инъецирование зависимостей, ваш код может декларировать зависимости от любого Managed-бина. Контейнер автоматически предоставляет объекты этих зависимостей в точках инъецирования во время выполнения, а также управляет жизненным циклом этих объектов.
Инъецирование зависимостей в Java EE задаёт области, которые управляют жизненным циклом инстанцируемых и инъецируемых контейнером объектов. Так, Managed-бин, необходимый для ответа только на один клиентский запрос (например, конвертер валют), имеет область видимости, отличную от области видимости Managed-бина, необходимого для обработки нескольких клиентских запросов в течение сессии (например, корзины покупок).
Managed-бин может быть задан простым назначением области видимости обычному классу. Это делает возможным его инъецирование:
@javax.enterprise.context.RequestScoped
public class CurrencyConverter { ... }
Используйте аннотацию javax.inject.Inject
для инъецирования Managed-бинов. Например:
public class MyServlet extends HttpServlet {
@Inject CurrencyConverter cc;
...
}
В отличие от инъецирования ресурсов, инъецирование зависимостей является типобезопасным (typesafe), поскольку приведение выполняется к известному типу. Чтобы отделить код от реализации Managed-бина, может быть использован интерфейс для ссылки на инъецируемые объекты, которые реализует этот Managed-бин.
Для получения дополнительной информации об инъецировании зависимостей см. главу 25 «Введение в контексты и инъецирование зависимостей в Java EE» и JSR 299 («Contexts and Dependency Injection for the Java EE Platform»).
Назад | Вперёд | Содержание |