Vraptor + injection + factory

Bom pessoal to com o seguinte situação:

tenho minhas controller e queria fazer elas recebe-cem o objeto IPaisService, IUsuarioService, etc…:

porém esses objetos não queria que fossem inicializado da forma padrão (com construtor vazio) queria que instância viesse do seguinte código.

IPaisService paisService = ((IPaisService) FrameworkUtil.getContext().lookup( FrameworkConstantes.PAIS_SERVICE_BEAN_JNDI)); //esse FrameworkConstantes.PAIS_SERVICE_BEAN_JNDI teria que pegar de acordo com uma annotation que ia por no construtor.

qual melhor solução pro meu caso?

cria um component Factory pra elas…

@Component
public class PaisServiceFactory implements ComponentFactory<IPaisService> {

    public IPaisService getInstance() {
          return IPaisService paisService = ((IPaisService) FrameworkUtil.getContext().lookup(
                FrameworkConstantes.PAIS_SERVICE_BEAN_JNDI));
    }
}

ou algo do tipo

fazendo isso basta receber no construtor do controller um IPaisService, que ele vai usar a instancia retornada pelo component factory