У меня есть сеансовый компонент для пользовательского интерфейса для редактирования некоторых данных. Он аннотируется с @Named и @SessionScoped, и все работает в JBoss 6.2. Теперь я получил требование для почти аналогичного пользовательского интерфейса редактирования. Проблема в том, что два пользовательских интерфейса могут существовать параллельно. Поэтому для идеального повторного использования было бы неплохо создать новый экземпляр компонента с другим именем. К сожалению, я понятия не имею, как это сделать чистым способом CDI. Мне не нравится так много, чтобы наследовать от боба и дать другое имя. Это была одна из моих идей. Другая идея заключалась в том, чтобы реализовать в управляемом компоненте только бизнес-логику и сохранить данные, инкапсулированные из них, и установить объект данных внутри управляемого компонента, когда это необходимо в конкретном контексте. Но может быть, есть еще один CDI-способ с продюсерами или что-то еще? Изменение объема компонента в ViewScope не имеет смысла в моем случае.Получите новый экземпляр компонента, связанного с сеансом, с другим именем
Благодаря Оливер
Стараюсь подход для повторного использования кода других компонентов, создавая их в новом управляемом компоненте в @PostConstruct. Наследовать и давать новое имя не является хорошей идеей и приводит к проблеме с cdi, чтобы выбрать правильный экземпляр. – opfau
Почему не BeanB не расширяет BeanA? –
В этом случае для CDI не указывается, какой экземпляр вводится. BeanA или BeanB. Я тоже не большой поклонник наследования. Только если это имеет смысл. – opfau