Galera estou com uma pequena dúvida:
Por que o VRpator não injeta a seguinte dependência para min:
@Resource
public class CostCenterController {
private final GenericDao<CostCenter> dao;
public CostCenterController(GenericDao<Costcente> dao){
this.dao = dao;
}
@Get
@Path("/costcenters")
public List<CostCenter> list(){
return this.dao.listAll();
}
}
vc tem uma implementação de GenericDao? ou vc só tem o GenericDao anotado com @Component? se for a segunda opção não vai funcionar mesmo… o VRaptor não vai conseguir adivinhar que GenericDao é a implementação pra
Lucas obrigado pela resposta, então quer dizer que usar Objetos genéricos no vraptor não há possibilidade, pois eu tinha a seguinte classe:
@Component
public class DaoGeneric<T> implements Dao<T> {
private final Session session;
private Class<T> entity;
public DaoGeneric(Session session, Class<T> entity){
this.session = session;
this.entity = entity;
}
//Insert, update, delete...
}
E dessa forma não foi possivel o Vraptor não instância a dependençia para min, ai tive q criar a seguinte classe para que a injeção fosse possível :
@Component
public class CostCenterDao extends DaoGeneric<CostCenter> {
public CostCenterDao(Session session){
super(session, CostCenter.class);
}
}
Minha pergunta é: Essa é a melhor forma, pois terei que criar uma classe para cada Dao necessário no sistema?
percebe que o VRaptor não tem como saber qual é a Class que ele vai ter que injetar? Lembre-se que o tipo genérico é apagado em tempo de execução…
desse modo o jeito seria criar uma classe específica para cada dao mesmo.
Dê uma olhada nesse post:
[]'s
[quote=Lucas Cavalcanti]percebe que o VRaptor não tem como saber qual é a Class que ele vai ter que injetar? Lembre-se que o tipo genérico é apagado em tempo de execução…
desse modo o jeito seria criar uma classe específica para cada dao mesmo.
Dê uma olhada nesse post:
[]'s[/quote]
Lucas, obrigado mais uma vez, excelente post vou implementar essa ídeia de repository.