Я работаю над приложением с несколькими SFSB, реализующими один и тот же интерфейс.SFSB call after remove
Чтобы решить во время выполнения, конкретная реализация котором е использовать, я следующий Factory Method:
@SuppressWarnings("rawtypes")
@Inject @Any Instance<SFSBInterface> sfsbSource;
public <T> SFSBInterface<T> initBeanForm(Class<T> clazz, Class<? extends SFSBInterface<T>> sfsbClass, Annotation... qualifiers) {
SFSBInterface<T> sfsb = sfsbSource.select(sfsbClass, qualifiers).get();
return sfsb;
}
Каждая конкретная реализация действительно есть @Remove аннотированный метод реализован. Теперь у меня есть случай, когда я хочу удалить этот sfsb и получить новый экземпляр при вызове этого метода.
Я вызываю метод remove и удаляю все ссылки на этот объект, но экземпляр сохраняется в памяти. Когда я теперь попрошу экземпляр этого класса, я получаю тот же экземпляр, для которого я назвал удаление раньше.
Мои вопросы:
- У меня возникают проблемы, если я использую этот экземпляр, для которого я назвал метод удалить?
- Нормально ли, что удаленный экземпляр хранится в памяти ?
- Как я могу эффективно удалить этот экземпляр?
- Как я могу получить настоящий новый экземпляр моего класса?
Сердечные приветы Christian
BTW: Я использую JBoss 7.1.1 и Weld