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.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

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

Para que serve:

Desenvolver aplicações corporativas Java EE 5 para a web de forma simples e eficiente, com uma curva de aprendizado baixa, utilizando anotações e injeção de dependências sem a necessidade de um servidor Java robusto.

Em que situação o tema é útil:

Para a construção de qualquer aplicação web que necessite de boas práticas de desenvolvimento envolvidas sobre padrões, com baixa curva de aprendizado e sem muitas configurações.

Desenvolvendo um blog com Spring MVC 3.0:

Poderoso, flexível e muito fácil de aprender, o Spring MVC é um framework open-source que usa como princípio o design MVC Model 2, em conjunto com a sua já tradicional injeção de dependências.

Na versão do Spring MVC 3.0, o framework passou a suportar novas características, sendo uma das principais o suporte completo a REST.

Com poucas linhas de código e configurações, podemos criar aplicações web facilmente utilizando o princípio de convenção sobre configuração, além de não apenas visualizar os dados no formato convencional (HTML), mas também em XML, JSON, entre outros.

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;

As entidades

O blog possuirá duas entidades distintas: Post e Comment. A entidade Post, baseada na tabela posts, possui três atributos, onde o atributo id será o único gerado automaticamente pela tabela, no banco de dados.

A entidade Comment possui também três atributos, onde haverá uma relação de Um-Para-Muitos em Post, através do atributo post_id. Isto significa que um post poderá ter diversos comentários. Lembrando que este artigo está focado nas características do Spring MVC 3.0 e não em um modelo de arquitetura completa.

Graças a JSR 303 (veja o quadro “A JSR 303”), chamada de Bean Validation, podemos anotar as entidades com validações. Validação de dados é uma tarefa comum e muitas vezes implementada em diferentes locais de uma aplicação. Com as anotações de Bean Validation na entidade, concentramos a validação em um único local, de forma padronizada. Além disso, também é possível tornar essas validações portáveis para outras tecnologias/frameworks além do Spring MVC.

As Listagens 2 e 3 exibem as entidades Post e Comment, respectivamente. Note que nas anotações de validação, colocamos as mensagens de erro embutidas, onde iremos capturá-las posteriormente pelo Spring MVC para exibir o problema ao usuário."

[...] continue lendo...

Artigos relacionados