Sistema usando VRaptor3 e Hibernate

18 respostas
Fabio_Kym_Nascimento

Pessoal fiz um sistema usando VRaptor e Hibernate como projeto para um curso de Desenvolvimento Web e estou disponibilizando se alguém quiser baixar, talvez ajude os iniciantes.

O projeto é basicamente uma lojinha virtual, bem simples, porém tem mais recursos do que a que vem com o VRaptor (aquela de DVD).

Tem a parte de mapeamento das classes para o Hibernate, usando Annotations, com tipos de relacionamentos variados, parte de acesso a dados com Dao, GenericDao, Sessions, UserSessions, tem a parte do Carrinho (Cart) que usa um modelo que não é persistido, e uma restrição para somente o usuário logado fazer determinadas coisas. Nada complexo, mas o código ficou enxuto e pode servir de base pra quem tem dúvidas ou quer iniciar com o VRaptor. Ainda não terminei o projeto, falta adicionar o usuário admin e colocar algumas restrições de acesso, mas já pode ajudar alguém.

EDIT: Ah tem também uma integração com o PagSeguro do UOL.

Se alguém quiser ver o sistema funcionando:

http://latosensu.dc.ufscar.br:16080/extrajudicial/

Como é um ambiente compartilhado, direto o tomcat caii, se tiver fora do ar da um reply que eu subo ele quando ver.

E pra quem quiser fazer um checkout:

http://code.google.com/p/extrajudicial/source/checkout

Eu fiz o projeto no Eclipse, então é só dar um Import lá que ta tudo certo. Pra rodar o sistema é só abrir o hibernate.cfg.xml e configurar o user e senha do MySQL, depois só rodar a classe CreateDabatase como Java Application e rodar o projeto com Run on Server, já é pra funcionar.

Abraços.

18 Respostas

M

O Sistema ficou legal.

Parabens.

Lucas_Cavalcanti

Ficou legal o sistema.
Dicas:

  • se a grande maioria das lógicas precisa de autenticação, crie uma anotação que fale que ela não precise, tipo um @NotRequiresUser, daí vc precisa anotar menos lógicas

  • @Autowired te prende ao Spring. Na próxima versão do VRaptor vamos ter suporte ao Guice e ao Pico de uma forma mais fácil.

  • faça testes automatizados para a sua aplicação

  • Injeção via field dificulta a testabilidade das suas classes, e faz com q elas só possam ser usadas dentro de um container de DI (o spring por exemplo). Daí vc não consegue reutilizá-las em outros ambientes

Quer que eu coloque esse tópico nesta página http://vraptor.caelum.com.br/comunidade.jsp ?

Fabio_Kym_Nascimento

Lucas Cavalcanti:
Ficou legal o sistema.
Dicas:

  • se a grande maioria das lógicas precisa de autenticação, crie uma anotação que fale que ela não precise, tipo um @NotRequiresUser, daí vc precisa anotar menos lógicas

  • @Autowired te prende ao Spring. Na próxima versão do VRaptor vamos ter suporte ao Guice e ao Pico de uma forma mais fácil.

  • faça testes automatizados para a sua aplicação

  • Injeção via field dificulta a testabilidade das suas classes, e faz com q elas só possam ser usadas dentro de um container de DI (o spring por exemplo). Daí vc não consegue reutilizá-las em outros ambientes

Quer que eu coloque esse tópico nesta página http://vraptor.caelum.com.br/comunidade.jsp ?

Opa valeu pelas dicas Lucas, eu não vou aplica-las nesse projeto porque ele é um projeto bem especifico para o curso e infelizmente o tempo é curto e além do desenvolvimento tem toneladas de documentação que sou obrigado a fazer (diagramas e mais diagramas), mas com certeza irei aplica-las em projetos futuros.

Só não entendi a terceira dica, você fala de injeção via field, mas qual seria a alternativa?

Sobre colocar o tópico em comunidades do VRaptor, a intenção é ajudar quem está iniciando, pode colocar lá sim!

Abs

Lucas_Cavalcanti

criando um construtor que recebe as dependencias vc nem precisa do @Autowired

Fabio_Kym_Nascimento

Mas não da no mesmo? Achei que o @Autowired só poupava o trabalho de ter que criar o construtor e atribuir os campos no mesmo. De qualquer maneira não tem que criar os campos?

Lucas_Cavalcanti

sim, precisa dos campos de qualquer jeito

o construtor vc pode gerar com o eclipse :wink:

se vc não vai testar nem reutilizar suas classes, tanto faz usar construtor ou field injection. Caso contrário, constructor injection é muito melhor.

Fabio_Kym_Nascimento

Lucas Cavalcanti:
sim, precisa dos campos de qualquer jeito

o construtor vc pode gerar com o eclipse :wink:

se vc não vai testar nem reutilizar suas classes, tanto faz usar construtor ou field injection. Caso contrário, constructor injection é muito melhor.

Entendi.

Na verdade eu quis economizar código, deixar as classes mais enxutas, mesmo com o Eclipse gerando o construtor. E como não ia precisar reutilizar as classes, nem fazer testes, o @Autorwired me pareceu uma boa solução.

Alias, bem que podia ter uma anotação tipo @GetSet, pra não precisar criar os Getters e Setters heh, mas ai acho que precisaria de algum recurso de metaprogramação, tipo como tem no Ruby, não sei se é possível com Java.

Mas foi boa essa discussão, não sabia que tinha essa diferença entre Field Injection e Constructor Injection.

Abs.

Lucas_Cavalcanti

dá uma olhada:
http://projectlombok.org/

tá em inglês, mas só vendo o video acho q dá pra entender
:wink:

Fabio_Kym_Nascimento

Lucas Cavalcanti:
dá uma olhada:
http://projectlombok.org/

tá em inglês, mas só vendo o video acho q dá pra entender
;)

Ah verdade, eu já tinha visto isso, heh, vlw :smiley:

silfar

Fabio, a aplicação está fora

silfar

Tá fora do ar

juniorsatanas

ta fora do ar !

juniorsatanas

Se tu por Relatorio e boleto bancário da ate pra vender ! hahahah

FICOU OTIMO !

zimmermarques

Fabio, vc teve problemas com o encode no retorno automático do PagSeguro?

zimmermarques

Minha aplicação foi feita com VRAPTOR 3.1.3 e hospedada na locaweb, estou tendo um problemão de encoding,

quando o PagSeguro manda o POST do retorno automático, acontece algo no servidor que troca o encode do retorno,
tipo: cartão de crédito fica Cartão de Crédito ai tá complicando pra validar o TOKEN.

alguém pode dar uma luz?

Obrigadão

W

Fábio se tiver como manda p o projeto por favor,
pq estou coomeçando a desenvolver com o VRaptor
e estou apanhando muito, vlw Kara.
[email removido]

juniorsatanas

http://vraptor.caelum.com.br/comunidade.jsp

juniorsatanas

nao ta pegando pode postar no 4shared ?
http://code.google.com/p/extrajudicial/source/checkout

Criado 28 de setembro de 2010
Ultima resposta 17 de mai. de 2011
Respostas 18
Participantes 7