Posso trabalhar com Vraptor sem injetar minhas dependências pelo Construtor

4 respostas
wagnersf

Queria saber se é possível isso. Se existe alguma forma de não injetar via construtor as dependências do meu Controller.

4 Respostas

Lucas_Cavalcanti

sim, vc pode fazer via setter, atributo direto ou init method, usando a anotação @Inject em cima deles (ou @Autowired se vc estiver usando spring)

pq vc precisa disso?

wagnersf

Era só uma dúvida mesmo :smiley:

wagnersf

Outra pergunta:
Eu testava meu controller Mockando minhas dependências.

@Mock
private TesteDao testeDao;
private Result result;
private MeuController meuController;

@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
this.result = new MockResult();
this.meuController = new MeuController(result, testeDao);
}

Então, Passava meus mocks quando eu dava um new no “MeuController”. Agora com a sua dica estou fazendo assim nos meus controllers.

@Autowired
private Result result;
@Autowired
private TesteDao testeDao;

Mas com isso, meus testes não estão mais funcionando. Quebrou foi tudo :smiley:

Lucas_Cavalcanti

pq será? :wink:

vc tirou o construtor, então não dá pra usar mesmo…

o que vc pode fazer é criar os setters, usar reflection pra setar direto o atributo, ou voltar com o construtor

Criado 6 de janeiro de 2012
Ultima resposta 9 de jan. de 2012
Respostas 4
Participantes 2