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!


Todo poderoso Spring - Revista Java Magazine 100 - Parte 2

O artigo mostra a importância das ferramentas da SpringSource para a comunidade Java. Ele também apresenta a segunda parte do desenvolvimento de um site de compras coletivas que utiliza apenas frameworks Spring.






A Java Magazine, durante todas estas 100 edições, trouxe excelentes artigos com muito conteúdo sobre os progressos da plataforma Java e das tecnologias ao seu redor. Neste período, a revista se consolidou como uma referência no assunto, auxiliando no crescimento profissional de milhares de desenvolvedores. Entre as centenas de artigos publicados, pudemos acompanhar o declínio e a ascensão de muitas tecnologias. Algumas delas, em especial, e não por acaso, foram abordadas diversas vezes, como é o caso dos projetos de excelência da SpringSource. Com isso, vamos buscar entender melhor qual a importância dos frameworks desta empresa.

A história do Spring começou com um desenvolvedor em busca de qualidade no desenvolvimento Java para web. Esta pessoa, hoje um grande nome da comunidade Java, é Rod Johnson. Suas contribuições começaram com o livro chamado “Expert One-on-One J2EE Design and Development”. Nele, Rod mostra como utilizar as tecnologias J2EE (atualmente Java EE) para reduzir a complexidade do desenvolvimento, auxiliando ainda a resolver problemas e erros comuns. Após a publicação, o autor utilizou o livro como base para a implementação da primeira versão do que conhecemos hoje como o principal produto da SpringSource, o Spring framework. E a partir daí, as melhorias no framework não pararam, sendo suas inovações reconhecidas através de prêmios como o Jolt (Productivity Award Winners) e o JAX Innovation Award.

Além de evoluir o Spring framework, a empresa que o mantém criou um verdadeiro ecossistema em sua volta, sempre com o objetivo de simplificar o desenvolvimento de aplicações Java. É tanto que hoje em dia a SpringSource apoia mais de 20 projetos, que contemplam web, mobile, segurança, acesso a dados, integração, RAD (Rapid Application Development), redes sociais, programação web através de fluxos, pagamentos, entre outros (veja na seção Links o endereço para eles).

Com o passar do tempo estas tecnologias ganharam credibilidade dentro das empresas do mundo inteiro, graças (entre outras características) à qualidade e às boas práticas adotadas. O Spring também tem o respeito da comunidade Java devido a quatro motivos principais:

1.      Sabemos que a SpringSource é uma empresa transparente, que disponibiliza os projetos com código fonte aberto;

2.      Sabemos que ela não fica reinventando a roda. Por exemplo, ao invés de fornecer um framework de mapeamento O/R (sendo que já existem ótimas opções no mercado), ela cria uma camada de abstração para integrar e facilitar o uso das soluções existentes;

3.      Sabemos que os projetos são impulsionados pelas exigências da comunidade. Deste modo, a empresa está sempre aberta para ouvir sugestões e suprir necessidades. Isso fica claro quando vemos o apoio a novos produtos ligados a tendências do mercado, como é o caso do Spring Data, que se preocupa com os bancos de dados NoSQL, e do Spring Android, que simplifica a construção de aplicações Android nativas;

4.      Por fim, sabemos que existe uma comunidade ativa em fóruns e blogs, que está pronta para auxiliar nas dúvidas.

 

Por causa de tudo isso, nesta edição histórica da Java Magazine, não poderia faltar um artigo capaz de reconhecer a importância destas tecnologias, a importância da SpringSource. Então, com este objetivo, daremos continuidade à construção de um site de compras coletivas que utiliza os principais projetos da SpringSource. A primeira parte deste tutorial, publicado na Edição 99, abordou os seguintes tópicos:

·         Escolha de tecnologias: Um sistema pode ser apoiado de diversas formas pelos frameworks Spring. No entanto, alguns deles podem sempre ser necessários graças a suas funcionalidades básicas. Dessa forma, escolhemos para o site de compras coletivas as seguintes tecnologias: Spring Core, Spring Data, Spring Roo e Spring Security;

·         Definição do escopo: O site tem o objetivo inicial de gerenciar empresas, ofertas e clientes. Para isso, teremos um usuário administrador capaz de cadastrar e manter as empresas e suas ofertas. Estas ofertas terão uma validade máxima de 24 horas, ou enquanto existirem itens disponíveis, sendo que, serão substituídas automaticamente no dia seguinte pela oferta cadastrada para ele. Por sua vez, os clientes poderão apenas se cadastrar, visualizar a oferta do dia e comprá-la;

·         Modelagem do sistema: Utilizamos um diagrama de classes para definir as entidades e relacionamentos do domínio. Nele descrevemos três classes, que representam os clientes, as empresas e as ofertas. Um cliente pode comprar de nenhuma a muitas ofertas. Uma empresa é capaz de cadastrar de nenhuma a muitas ofertas. Já as ofertas podem ser compradas por nenhum ou vários clientes, e cada uma delas pertence apenas a uma empresa;

·         Arquitetura do sistema: Tomamos como base o padrão arquitetônico em camadas para separar os interesses e responsabilidades do sistema. Assim, consideramos quatro camadas: de apresentação, responsável pela interação entre os usuários e o sistema; de serviço, capaz de expor as funcionalidades da aplicação; de acesso a dados, que isola todas as manipulações com o banco de dados do restante da aplicação; e de domínio, onde estão localizadas as classes de entidades do sistema;

·         Primeiros passos para o desenvolvimento: Os três primeiros passos, detalhados na Parte 1 do artigo, buscaram: 1) preparar o ambiente através da configuração das tecnologias; 2) desenvolver a estrutura inicial do projeto utilizando todas as facilidades que o framework Spring Roo oferece; 3) realizar testes, implantação e migração do projeto da aplicação para a IDE Eclipse.

 

Nesta segunda e última parte do artigo, temos como finalidade completar o passo a passo para a construção do site. Com isso, você aprenderá a realizar configurações de segurança para suas aplicações com apoio do Spring Security, descobrirá como criar um controller com o Spring MVC, encontrará uma maneira simples de personalizar nossa camada de serviço e ainda verá como é fácil customizar os códigos gerados pelo Spring Roo.

Continuação do passo a passo

A partir de agora teremos como alvo a lógica de negócios da aplicação. Assim, você observará como alterações no projeto podem ser feitas de forma simples. Veremos que criando e alterando algumas classes podemos permitir aos clientes a compra da oferta do dia. Ainda tomaremos cuidado com a garantia de acesso adequado às paginas da aplicação, através de personalizações de segurança. Por fim, faremos alterações em algumas páginas web para que os clientes possam efetivamente visualizar e comprar as ofertas.

4º Passo – Personalizando Configurações de Segurança

Nesta etapa começaremos a personalizar nossa aplicação para que se torne um site de compras coletivas. As primeiras alterações serão relacionadas à segurança, com o objetivo de mudar as configurações de acesso às páginas e de autenticar os usuários com base em informações cadastradas no banco de dados.

Durante a configuração do Spring Security pelo Spring Roo, um dos arquivos criados foi o applicationContext-security.xml. Este arquivo possui informações sobre a segurança da aplicação, como por exemplo, os usuários que podem ser autenticados e suas permissões de acesso. A fim de adequar as configurações à realidade do nosso site, iremos editar algumas partes do seu código no Eclipse. Para isso, você deve abrir este arquivo, localizado em src\main\resources\META-INF\spring\applicationContext-security.xml. As mudanças contemplarão as tags <intercept-url> e <authentication-manager>, além da inclusão de uma nova tag <bean> para registrar nosso provedor de autenticação. A Listagem 1"



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!






    7 COMENTÁRIOS

[Fechar]

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



Carlos Amaral
Está com dando erro no eclipse na classe: ComprasAuthenticationProvide.java

No trecho: Cliente.findClientesByEmailAndSenhaEquals(username, password).getSingleResult();

O eclipse não encontra o método findClientesByEmailAndSenhaEquals() que está no arquivo Cliente_Roo_Finder.aj do pacote br.com.javamagazine100.compracoletiva.domain

Como que eu faço para resolver ??
[há +1 mês] - Responder

 

[autor] José Alexandre Macedo
Olá Carlos,

Verifique se o seu Eclipse possui o plugin "AspectJ Development Tools (AJDT)", caso não tenha vá até Help->Eclipse Marketplace procure-o e faça a instalação. Com isso suas classes reconhecerão os métodos disponíveis nos arquivos *.aj

Qualquer dúvida estou a disposição!
[há +1 mês] - Responder
 

Carlos Amaral
Obrigado José Alexandre Macedo, funcionou !!!
[há +1 mês] - Responder
 

Fernando Cavalcante
Olá, no artigo tem o comentário para faze o download do código fonte no site, onde faço esse download no site? não estou encontrando...
[há +1 mês] - Responder

 

[autor] José Alexandre Macedo
Olá Fernando,

O download pode ser feito nesta página http://www.devmedia.com.br/post-23536-Revista-Java-Magazine-100.html . Em cima do título "Revista Java Magazine 100" tem um link escrito "código-fonte".

Abraços,
José Alexandre.
[há +1 mês] - Responder
 

Wagner Alves
Errei ao gerar a classe de domínio Oferta no springRoo. Abri está classe no Eclipse e a alterei, mas os .aj continuam errado. Tem alguma forma de corrigir isso automático?
[há +1 mês] - Responder

 

[autor] José Alexandre Macedo
Olá Wagner,

Não tem problema você mudar uma classe pelo Eclipse. No caso, para atualizar os .aj e as páginas depois você só precisa abrir o projeto no shell do Roo. Quando fizer isso o Roo automaticamente verificará alterações e fará as atualizações.

Abraços.
[há +1 mês] - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
José Alexandre Macedo

é Mestrando em Informática na Universidade Federal do Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal de Alfenas.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   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