Boa tarde,
Estou utilizando JEE6 e CDI (JSR 299) + Glassfish v3 e gostaria de saber se após criar um objeto de sessão utilizando @Inject consigo recuperar esse mesmo objeto em outro momento na aplicação utilizando novamente @Inject, bom vou tentar explicar melhor:
Eu possuo um managed bean chamado FiltroMBean onde injeto um objeto com escopo de sessão (FiltroGlobal) e eu gostaria que esse objeto fosse compartilhado com outras classes que utilizarem @Inject FiltroGlobal. Pelo que pude perceber, cada vez que eu faço @Inject FiltroGlobal o container instância um novo FiltroGlobal.
Resumindo, tem como eu injetar essa classe (@Inject FiltroGlobal) uma vez e nas próximas vezes que eu necessitar injetar a mesma que ela já venha populada com os valores que setei anteriormente?
Essa é a classe a ser injetada
@SessionScoped
public class FiltroGlobal extends Filtro implements Serializable {
private static final long serialVersionUID = 1L;
private Uf uf = new Uf();
.....
}
Aqui eu injeto pela primeira vez e seto os valores para o filtro global que devem ser utilizados por todo o sistema.
@Named("filtroMBean")
@SessionScoped
public class FiltroMBean implements Serializable {
private @Inject FiltroGlobal filtroGlobalSelecionado;
.....
}
Posteriormente eu gostaria de injetar esse objeto filtro global com os valores selecionados anteriormente e não que um novo objeto seja instânciado.
public class PlanejamentoRepository implements Serializable {
private @Inject FiltroGlobal filtroGlobal;
private @Inject EntityManager em;
......
}
Existe alguma maneira de fazer isso?
Até o momento sempre que utilizo @Inject uma novo objeto é criado.
Obrigado!