Bom dia pessoal!
Estou com um probleminha ao utilizar o VRaptor e o Guice.
Não sei o que estou fazendo de errado, mas o Guice só injeta instâncias dos meus repositórios nos controllers,
porém, se tento fazer o mesmo dentro dos modelos, o Guice não faz nada. Ex:
/**
*Nunca consigo uma referência ao meu repositório, dentro do modelo...
*/
@Entity
@Table(name="usuario")
public @Data class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Transient @Inject private RepositorioUsuario repositorio; //NÃO INJETA
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String nome;
.
.
.
public void salva(){
this.repositorio.adiciona(this); //REPOSITORIO SEMPRE NULL
}
public List<Usuario> lista(){
return this.repositorio.lista(); //REPOSITORIO SEMPRE NULL
}
}
@Get
@Resource
public class UsuarioController {
@Inject private Validator validator;
@Inject private Result result;
public void novo() {}
@Post
public void novo(Usuario usuario) {
usuario.salva();
}
public void lista(Usuario usuario) {
result.include("usuarios", usuario.lista());
}
}
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>br.com.caelum.vraptor.util.hibernate,java4.fun</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>messages</param-value>
</context-param>
<context-param>
<param-name>br.com.caelum.vraptor.encoding</param-name>
<param-value>ISO-8859-1</param-value>
</context-param>
<filter>
<filter-name>vraptor</filter-name>
<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>