#java #dependency-injection
#java #внедрение зависимостей
Вопрос:
Мой опыт работы с .NET, и я привык к возможности устанавливать стиль жизни (одноэлементный, постоянный …) для моих зависимостей, используя такие вещи, как Castle Windsor.
Недавно я перешел к проекту Java, где код использует @Resource для внедрения зависимостей. Я огляделся, но не могу найти способ указать стиль жизни. Существует ли концепция или я просто мусор с моим поиском?
Ответ №1:
Аннотация ресурса используется для получения управляемого контейнером ресурса (EJB, очереди JMS и т. Д.) Из JNDI, Поэтому я думаю, что у вас нет контроля над жизненным циклом и тем, что вы называете образом жизни.
Для некоторой мелкозернистой инъекции зависимостей компонентов приложения с использованием некоторой структуры CDI, такой как Spring или Weld (ссылка impl. для Java EE 6) — это путь.
Комментарии:
1. Спасибо. К сожалению, на данный момент я не могу переместить код для использования Spring CDI, поэтому буду помнить об этом в следующий раз.
Ответ №2:
Эта концепция образа жизни не существует в родной Java. Ближайшая концепция, о которой я могу думать, — это, вероятно, области прототипов / одноэлементных элементов Spring.
http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch04s04.html
Ответ №3:
Используйте модуль внедрения зависимостей Spring. Подробно здесь