(...) вся действующая бизнес-логика заключается в классах "менеджера", которым сеансные бины перенаправляют свои вызовы.
Это был очень распространенный шаблон в EJB 2.xпозволяя выполнить модульное тестирование классов «менеджера» легко, вне контейнера, без какого-либо соблюдения API EJB.
Можно ли каким-то образом сделать эти классы менеджера способными внедряться в EJB через @Resource изатем добавление в них других EJB-компонентов через @EJB?
Не из коробки с Java EE 5. Инъекция ограничена только конструкциями первого класса, определенными в платформе Java EE, включая:
SessionContext
объект DataSources
объект UserTransaction
EntityManager
интерфейс TimerService
интерфейс - Другие корпоративные компоненты
- Веб-сервисы
- Очереди сообщений и темы
- Фабрики соединений для ресурса адаптируются
- Ограничение записей средыСтрока, Символ, Байт, Короткое, Целое, Длинное, Буlean, Double и Float.
В Java EE 6 это возможно при использовании CDI ( JSR-199 ) и аннотации @Inject
в EJB для внедрения ваших менеджеров.а также у вас, менеджеров, чтобы вводить EJB.
Возможно вы можете попытаться развернуть Weld (RI JSR-199) как часть вашего приложения на GlassFish v2.1.Я не экспериментировал сам, поэтому не могу ничего подтвердить.На всякий случай, возможно, взгляните на главу 18. Серверы приложений и среды, поддерживаемые Weld (GlassFish v2.1 не был протестирован, но это не значит, что он не работает).