DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Java Magazine 78 - Desenvolvendo um blog com Spring MVC 3.0

Desenvolvimento prático de uma aplicação web, exemplificando um blog, passo a passo, utilizando o framework Spring MVC 3.0.






Desenvolvendo um blog com Spring MVC 3.0
Explore o poder do Spring MVC para desenvolvimento de aplicações web
Aprenda na prática algumas das principais características do framework com o exemplo de um blog, incluindo Hibernate com JPA

O Spring MVC é um framework open-source que usa como princípio o padrão MVC Model 2 em conjunto com a já tradicional injeção de dependências. Em sua view, o framework possui também o suporte a outras tecnologias, como: JSP/JSTL/Tiles, XML/XSLT, Velocity e FreeMarker. A integração com JasperReports e exportação de documentos para PDF e Excel também estão inclusas.
Com suporte a anotações, introduzidas na versão 2.5, o framework Spring reduziu significativamente o uso de XML, comum em versões anteriores. Isto possibilitou a redução de códigos para a criação de aplicações web através do Spring MVC 3.0, indo de encontro ao conceito pregado por frameworks como o Ruby on Rails, de Convenção sobre Configuração (Convention over Configuration).
Neste artigo abordaremos a arquitetura do Spring MVC na versão 3.0, discutindo suas características de desenvolvimento mais significativas e construindo um simples Blog como aplicação de exemplo.

Convenção sobre Configuração: Associado ao framework Ruby on Rails, que o popularizou na prática, o conceito busca minimizar as decisões tomadas pelo desenvolvedor através de soluções simples e com flexibilidade. Em suma, podemos minimizar o código, por exemplo, adotando uma convenção de nomes para classes, arquivos e uma série de padrões que poderão ser utilizados pela aplicação na ausência de uma configuração específica. Através de convenções, mais simples fica a solução, contendo menos configurações e, portanto, menos trabalho. A ideia do conceito é fazer o possível em tirar a responsabilidade do desenvolvedor ao se preocupar com o que não seja necessariamente código.
Criando e Configurando o Projeto
Para trabalhar com o Spring MVC 3.0, faça o download do framework no site http://www.springsource.org/download. Crie um projeto Web em sua IDE preferida e adicione os arquivos JARs encontrados após a descompactação do arquivo.
Para o banco de dados, vamos utilizar o MySQL (MySQL Community Server 5.1), que poderá ser baixado no site http://www.mysql.com/downloads/. Neste mesmo endereço encontramos o driver JDBC (Connector/J 5.1) que deverá ser adicionado ao projeto.
Os erros no projeto serão tratados de acordo com a especificação JSR 303 (Bean Validation). Os JARs necessários se encontram no site https://www.hibernate.org/30.html. Neste caso, teremos que baixar o Hibernate Validator. Após extrairmos, utilizaremos os JARs hibernate-validator-4.0.2.GA.jar e validation-api-1.0.0.GA.jar.
Também teremos no aplicativo a possibilidade de exportar as informações contidas no banco de dados em formato XML e JSON. Para que isso seja possível, precisaremos obter as seguintes bibliotecas: jackson-mapper-lgpl-1.0.1.jar, jackson-core-lgpl-1.0.1.jar e xstream-1.3.1.jar. Para as duas primeiras bibliotecas, acesse o site http://jackson.codehaus.org/Download. A terceira biblioteca se encontra no site http://xstream.codehaus.org/download.html.
Caso deseje preparar seu ambiente de trabalho, especificamente para desenvolver com Spring, no endereço http://www.springsource.com/products/springsource-tool-suite-download encontramos o SpringSource Tool Suite, configurado com diversos plugins, incluindo o Spring IDE, preparado para trabalhar com o framework.
Por fim, para rodar o aplicativo, um contêiner como o Apache Tomcat é o suficiente.
Spring MVC 3.0 na prática
A aplicação que desenvolveremos é um pequeno blog, onde teremos a submissão dos artigos (posts) e a possibilidade de adicionar comentários (comments).
Modelo de dados
O projeto neste artigo está baseado em duas entidades, suficientes para mostrar algumas das principais características de desenvolvimento do Spring MVC. O modelo de dados pode ser visualizado na Figura 1.

 
Figura 1. Modelo de dados para o blog.

Para iniciar, vamos criar o banco de dados no MySQL. A Listagem 1 mostra o script para a criação do banco de dados e as tabelas usadas no exemplo.

Listagem 1. Banco de dados e Tabelas do Blog.
CREATE DATABASE jvmblog;

CREATE TABLE posts (
  id     bigint AUTO_INCREMENT NOT NULL,
  title  varchar(255),
  body   text,
  PRIMARY KEY (id)
) ENGINE = InnoDB;

CREATE TABLE comments (
  id      bigint AUTO_INCREMENT NOT NULL,
  post_id bigint,
  comment text,
  PRIMARY KEY (id),
  CONSTRAINT FKPOST
    FOREIGN KEY (post_id)
    REFERENCES posts(id)
) ENGINE = InnoDB;
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    14 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Erivando S. Ramos
Quais os arquivos jars deverão ser acrescentados referente o hibernate e ao JPA ?
[há +1 ano] - Responder

 

José Levy Moreira Leite
hibernate-validator-4.0.2.GA.jar e validation-api-1.0.0.GA.jar
[há +1 ano] - Responder
 

Ezequias Monteiro De Oliveira
olá boa tarde, gostaria de saber onde posso baixar o exemplo feito na materia de Spring MVC 3.0. O que tem disponivel pra baixar não é o exemplo citado na materia.
[há +1 mês] - Responder

 

Devmedia - Equipe De Moderacao
Ezequias, entramos em contato com o autor para verificar a possibilidade de disponibilizar os códigos.

Atenciosamente,

Equipe Devmedia.
[há +1 mês] - Responder
 

Tenclar Valus Da Silva-
estou com problemas em rodar o projeto, pois apresenta o seguinte erro

Line 19 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:component-scan'.

na linha 19
[há +1 mês] - Responder

 

Dyego Souza Do Carmo
Poderia colar o XML aqui para sabermos se tem algo nele ?

Valeu !
[há +1 mês] - Responder
 

Rafael Jesus
Pessoal baixei a versão do spring 3.0.1, coloquei os jars qua lá estavam, e percebi que não tem o jar org.springframework.stereotype.Controller.Outra coisa como faço para criar as entidade Post e Comments? Pois criei elas como Classes normais e surgiram um monte de erros nas anotações, ou eu tenho que criar um JPA Entity em Others? Estou perdido..Obrigado e no aguardo!!
[há +1 mês] - Responder

 

Dyego Souza Do Carmo
Em meu devsdpace tem videos obre spring mvc e vc pode tirar estas suas duvidas.
[há +1 mês] - Responder
 

Adams Willians Alencr Zago
Pessoal nunca havia trabalhado antes com Spring, e agora estou investindo no framework, mas tenho a ligeira impressão que a parte de controlle onde estão os @RequestMappings está bem próxima do que o VRaptor faz?
Desculpem, sei que não é o foco, mas fiquei curioso.
[há +1 mês] - Responder

 

Dyego Souza Do Carmo
Sim,

Eu particularmente não vejo o Spring como um MEGA SUPER FRAMEWORK , um dia já foi , hj tem muita coisa padrao que faz o que faz e não é tão complicado.
[há +1 mês] - Responder
 

Marcelo Pf
A Qualidade do video esta pessima, se tentar usar a tela cheia não da de ver nada, e ainda tem um chio de alguma gravação de caixa de som com problema...
[há +1 mês] - Responder

 

Devmedia - Equipe De Moderacao
Marcelo, abrimos a aula mas não identificamos o problema da resolução. o chiado é muito baixo, não atrapalhando o som do video.
de toda forma, os novos videos estão com uma resolução melhor.
[há +1 mês] - Responder
 

Mauricio Nunes
Peço desculpas pela ignorância, mas uma das coisas que mais me irrita nos artigos relacionados algum framework é justamente adicionar coisas que não teriam necessidades de se fazer. No caso do artigo, se o objetivo é mostrar o Spring MVC, porque ter que adicionar o hibernate, e o hibernate-validators ?

[há +1 mês] - Responder

 

Dyego Souza Do Carmo
O spring MVC não é um framework dito "pilha completa" , ele necessita de alguns "plugins" para fazer algumas tarefas, neste caso para trabalhar com banco de ados ele precisa do Hibernate para fazer o ORM , isto é bem normal no mundo dos frameworks.

Quert algo pilha completa ? Use Java EE 6. NetBeans 7.1.1 + Glassfish 3.1.2, nao vai precisar baixar nada.

[há +1 mês] - Responder
 



Publicidade
Autor
Edson Gonçalves

trabalha com desenvolvimento de aplicações Web há mais de 10 anos e possui as certificações Java SCJP e SCWCD. Já escreveu mais de 10 livros, onde abordam, em sua maioria, a tecnologia Java, incluindo sobre ferramentas como NetBeans e Eclipse. Nas horas livres, colabora em alguns projetos open sourc...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03