DI nos modelos com Guice e VRaptor

0 respostas
M

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>
------------------------------------------------------------------------------------------------------------------------------------------
Criado 9 de dezembro de 2011
Respostas 0
Participantes 1