Sistema usando VRaptor3 e Hibernate  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
Fabio "Kym" Nascimento
JavaChild
[Avatar]

Membro desde: 23/08/2008 23:04:58
Mensagens: 124
Offline

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.

This message was edited 1 time. Last update was at 28/09/2010 22:45:40


Por mais que você domine algum tema, sempre há algo a aprender sobre ele.
malayout
Thread.start()
[Avatar]
Membro desde: 22/05/2007 11:16:08
Mensagens: 42
Offline

O Sistema ficou legal.

Parabens.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

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 ?

--
Caelum
www.caelum.com.br

Fabio "Kym" Nascimento
JavaChild
[Avatar]

Membro desde: 23/08/2008 23:04:58
Mensagens: 124
Offline

Lucas Cavalcanti wrote: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

Por mais que você domine algum tema, sempre há algo a aprender sobre ele.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

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

--
Caelum
www.caelum.com.br

Fabio "Kym" Nascimento
JavaChild
[Avatar]

Membro desde: 23/08/2008 23:04:58
Mensagens: 124
Offline

Lucas Cavalcanti wrote:criando um construtor que recebe as dependencias vc nem precisa do @Autowired


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?

Por mais que você domine algum tema, sempre há algo a aprender sobre ele.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

sim, precisa dos campos de qualquer jeito

o construtor vc pode gerar com o eclipse

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

--
Caelum
www.caelum.com.br

Fabio "Kym" Nascimento
JavaChild
[Avatar]

Membro desde: 23/08/2008 23:04:58
Mensagens: 124
Offline

Lucas Cavalcanti wrote:sim, precisa dos campos de qualquer jeito

o construtor vc pode gerar com o eclipse

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.

Por mais que você domine algum tema, sempre há algo a aprender sobre ele.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Offline

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

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

--
Caelum
www.caelum.com.br

Fabio "Kym" Nascimento
JavaChild
[Avatar]

Membro desde: 23/08/2008 23:04:58
Mensagens: 124
Offline

Lucas Cavalcanti wrote: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

Por mais que você domine algum tema, sempre há algo a aprender sobre ele.
silfar
HelloWorld

Membro desde: 03/04/2007 12:36:35
Mensagens: 12
Offline

Fabio, a aplicação está fora
silfar
HelloWorld

Membro desde: 03/04/2007 12:36:35
Mensagens: 12
Offline

Tá fora do ar
juniorsatanas
GUJ Master
[Avatar]

Membro desde: 20/05/2007 01:08:24
Mensagens: 1864
Localização: web2ajax@gmail.com
Offline

ta fora do ar !

Cheque Mate em 6
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
juniorsatanas
GUJ Master
[Avatar]

Membro desde: 20/05/2007 01:08:24
Mensagens: 1864
Localização: web2ajax@gmail.com
Offline

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


FICOU OTIMO !

Cheque Mate em 6
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
zimmermarques
What is classpath?

Membro desde: 08/04/2008 19:08:35
Mensagens: 6
Offline

Fabio, vc teve problemas com o encode no retorno automático do PagSeguro?
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team