Olá amigos,
Por gentileza, se possível, gostaria de algumas idéias sobre um problema aqui, pois creio que não achei a melhor forma de solucionar a questão.
Tenho uma interface e duas implementações, ambas anotadas com @Component e @ApplicationScoped.
Em outra classe, preciso de uma dessas implementações dependendo de um parâmetro da requisição. Minha idéia foi criar um ComponentFactory com @RequestScoped, e lá meter um if e retornar o cara adequado.
Essa abordagem não funcionou, pois no momento da injeção o Spring informou que há tres tipos daquela interface no contexto (as duas implementações e a fábrica). O erro do Spring faz sentido, mas não estou percebendo se há algum problema nessa minha modelagem…
Por enquanto deixei as duas implementações como @Request e estou criando-as dentro da factory, mas quero que esses caras tenham escopo de contexto (não preciso cria-los a cada request e sim usá-los a cada request). Mas se nao vou poder declará-los como @Component, pra nao conflitar com a fábrica, onde posso manter a instancia desses caras? Em um bom e velho Singleton? :lol:
Bem, agradeço a ajuda de todos.
Obrigado!