injeÇÃo de dependÊncia - "stateless"

Olá!

Estou com uma dúvida em relação à injeção de dependências. Eu tenho o seguinte código:

@Name("tbconcursoFinder")
@Stateful
@Scope(ScopeType.SESSION)
@Interceptors(SeamInterceptor.class)
public class TbconcursoFinderBean extends GenericoFinderBean implements TbconcursoFinder { 
   
   @In(create = true)
   private ConcursoFinder concursoFinder;

Note que estou fazendo injeção de dependência na propriedade ‘private ConcursoFinder concursoFinder;’. Porém, analisando o código que implementa a classe ConcursoFinder:

@Name("concursoFinder")
@Stateless
@Interceptors(SeamInterceptor.class)
public class ConcursoFinderBean extends GenericoFinderBean implements ConcursoFinder {

Percebe-se que ela é Stateless, ou seja, por que fazer injeção de dependência de um objeto que não permanecerá na sessão ao invés de simplesmente criar uma nova instância desse objeto usando o operador new ??
Talvez eu não esteja entendendo bem pois estou estudando injeção de dependências, se alguém puder me ajudar, fico muito grato!

Vc está delegando a criação para o conteiner…

  • Supondo que vc instancie essa classe, digo supondo, pq essa classe é um EJB então pode ser obtida através de um lookup:
  1. Se vc um dia precisar mudar a classe que implementa ConcursoFinder, basta trocar a anaotação @Name(“tbconcursoFinder”) de classe. Vc só vai precisar mecher em um lugar.

Se vc explicitamente chamar new, estará criando uma ligação forte classe ConcursoFinderBean com a classe TbconcursoFinderBean.

  1. Utilizando a injeção vc não tem essa forte ligação já que a classe TbconcursoFinderBean nem sabe que a classe ConcursoFinderBean existe.

Para fazer isso em classes comuns sem injeção vc teria que perder tempo criando fabricas de objetos.

Mas como sua Classe é um EJB e vc pode obter através de um Lookup acredito que o maior beneficio é escrever menor quantidade de código.

Além de você esclarecer essadúvida postada, você ainda me esclareceu um monte de dúvidas com apenas uma resposta. Muito Obrigado! Ficou muito claro pra mim agora!