VRaptor - componente com mais de uma implementação da interface

2 respostas
Rafael_Steil

Tenho uma inteface I, e duas implementações A e B, porém só quero usar uma delas. Como especifico pro VRaptor qual delas usar? Por enquanto tenho arrancado fora o @Component de uma das classes, mas não me parece certo.

Obs: o caso de uso disso é que uma das implementações é “fake” (aka, acessa o meu localhost), e a outra é a “de verdade”.

Tks,

2 Respostas

Rafael_Guerreiro

Se vc usa o Google Guice como container, você pode dar nome para as instâncias e chamar com a anotation @Named(“Local”)…
Mas acredito que você quer isso aumotaticamente, então você pode receber o HttpServlet no construtor e verificar se existe localhost na URL ou não…

Lucas_Cavalcanti

o jeito de fazer é algo assim mesmo, ou troca o @Component, ou cria uma ComponentFactory da interface que seleciona qual é a implementação que vc quer usar de acordo com algum valor configurado em algum lugar

Criado 24 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 2
Participantes 3