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 Easy Java Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Spring Framework 3: Introdução - Revista easy Java Magazine 13

O artigo apresenta o conceito e a prática do uso de injeção de dependências com o auxílio do Spring Framework 3. Também demonstra um simples exemplo de persistência de dados com o recurso JdbcTemplate, a integração do Spring com o framework de t





Easy Java Magazine 13

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da Easy Java Magazine 13


No mundo do desenvolvimento de sistemas, existem vários frameworks que simplificam a vida dos programadores na implementação de seus projetos. Mas o que é exatamente um framework?

Um framework é uma arquitetura, ou uma estrutura, que fornece ferramentas comuns a vários projetos. Por ser construído com base em diversos tipos de padrões, permite o reuso de classes e proporciona um ambiente de desenvolvimento muito mais produtivo. Neste ponto, vale ressaltar que a solução de problemas comuns no desenvolvimento de softwares pode ser encontrada com muito mais facilidade quando se seleciona um framework específico para tal situação.

Na atualidade, há diversos frameworks disponíveis, como Hibernate, Struts, JSF, Zend, VRaptor, Spring, entre muitos outros. A padronização de processos, o uso de boas práticas, a ampla disponibilidade de recursos, o reaproveitamento de código, a facilidade de manutenção e uma maior produtividade são algumas das vantagens encontradas ao se fazer uso de frameworks em projetos de software.

Um framework muito popular na comunidade Java é o Spring. Idealizado por Rod Johnson, possui código aberto e foi lançado em março de 2004. O Spring é considerado por muitos desenvolvedores como o framework mais vitorioso e poderoso disponível para a linguagem Java, em decorrência de sua grande aceitação, possibilidade de integração e APIs disponíveis. O Spring fornece várias ferramentas para serem utilizadas em projetos, por exemplo: Spring Security, Spring Social, Spring MVC, Spring Rich Client, entre outras. A mais usada com certeza é o Container de Inversão de Controle (Inversion of Control – IoC) e Injeção de Dependências (Dependency Injection – DI). A injeção de dependências possibilita um baixo nível de acoplamento entre os módulos do sistema, e tem como finalidade injetar em cada componente suas dependências. A inversão de controle trás o lema: “não nos chame, nós chamamos você”. É a técnica de desenvolvimento na qual um comportamento do sistema é delegado a uma entidade externa, neste caso o Container IoC do Spring. Isso significa que o Container IoC assume a responsabilidade de criar novos objetos e destruí-los quando necessário.

Além disso, o Spring Framework fornece a implementação de várias especificações Java EE, como: JMS, JDBC, JavaMail, JNDI, entre várias outras. Implementações como estas são disponibilizadas através de objetos que o Spring chama de “template”, como JmsTemplate, HibernateTemplate, RestTemplate, etc. Por exemplo, quem usa o Hibernate necessita programar classes que contenham objetos de SessionFactory, Session e Transaction. Assim, se deve desenvolver o controle de transações e controlar quando iniciar e fechar uma sessão. Com o uso do HibernateTemplate tudo isso é controlado pelo Spring, visto que ele já possui tudo isso implementado. Mesmo assim, se você precisar usar a sua própria implementação, também pode ter essa possibilidade de integrá-la com o Spring.

Neste contexto, este artigo apresentará alguns conceitos e técnicas de como fazer uso da injeção de dependências gerenciada pelo Spring, e como utilizar e configurar um objeto JdbcTemplate para persistência de dados. Será demonstrado também um caso de testes usando o framework JUnit, integrado com o Spring, para testar a injeção de dependências e a persistência de dados. O artigo aborda ainda uma pequena introdução ao uso da linguagem SpEL (Spring Expression Language), que possui vários recursos como a leitura de arquivos de propriedades.

O que é o framework Spring?

O Spring, atualmente na versão 3, nasceu como uma resposta à complexidade existente no uso de EJB (Enterprise Java Beans). Rod Johnson idealizou e o descreveu em seu livro “Expert One-on-One: J2EE Design and Development”. O framework é baseado nos padrões de projeto inversão de controle (IoC) e injeção de dependência (DI). No Spring, o Container IoC se encarrega de “instanciar” classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração no formato XML ou anotações nas classes, métodos e propriedades. Desta forma, se permite o baixo acoplamento entre classes de uma aplicação orientada a objetos.

Este framework é composto por recursos organizados em vários módulos (veja a Figura 1), como testes unitários, web, persistência, acesso remoto, programação orientada a aspectos, entre outros. Estes módulos podem ser implementados separadamente ou em conjunto, conforme a necessidade do projeto. Isto possibilita que o Spring seja empregado nos mais variados tipos de aplicação, sendo elas de pequeno, médio ou grande porte. Com sua arquitetura baseada em interfaces e POJOs, possui como um dos seus principais objetivos tornar mais fácil o uso das tecnologias existentes no mercado. Outro recurso interessante é o Lazy Initialization, que permite ao Spring carregar apenas os beans solicitados. Assim, a aplicação ganha em desempenho porque se um bean for declarado no contexto, mas não estiver sendo utilizado, ele não será carregado até que seja necessário. Para entender um pouco mais sobre o funcionamento do Spring Framework, é interessante analisar a distribuição de seus módulos e sub módulos descritos a seguir.

Plain Old Java Objects, ou simplesmente POJO, são objetos que não herdam ou implementam ninguém. Eles são independentes de classes externas, ou seja, são classes simples, que não estão presas a nenhum framework ou biblioteca. O termo foi criado quando Rebecca Parsons, Josh MacKenzie e Martin Fowler se preparavam para uma palestra em uma conferência em Setembro de 2000.

Módulo Core Container

O módulo Core Container é chamado de Container de Inversão de Controle e é considerado o núcleo do framework. Nele estão localizadas as funcionalidades padrões do Spring e alguns módulos internos como o Core, Beans, Context e Expression Language. O Beans e o Core fornecem as peças fundamentais da estrutura, incluindo o IoC (Inversão de Controle) e o DI (Injeção de Dependência).

O BeanFactory, presente no módulo Beans, é uma implementação sofisticada do padrão Factory, sendo responsável por aplicar a injeção de dependências e a inversão de controle no sistema.

O Context se constitui por uma base sólida fornecida pelos módulos Core e Beans. É um meio para acessar objetos de maneira semelhante a um registro JNDI. Ele herda as características do módulo Beans e adiciona suporte à internacionalização (i18N) a partir de arquivos de mensagens, comunicação entre os componentes via propagação de eventos, recurso de carregamento de arquivos e a criação de contextos específicos, tais como para aplicações desktop ou aplicações web. O módulo também suporta recursos Java EE, como EJB, JMX, JNDI, Mail, entre outros. O ponto principal do Context é a interface "

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 Easy Java Magazine
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Marcio Ballem De Souza
Marcio Ballem de Souza é bacharel em Sistemas de Informação pelo Centro Universitário Franciscano em Santa Maria/RS. Tem experiência com desenvolvimento Delphi e Java em projetos para gestão pública e acadêmica. Possui certificação em Java, OCJP 6.
O que você achou deste post?

    4 COMENTÁRIOS

[Fechar]

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



Jose Silva Batista
Muito bom!
- Acho que deveria melhorar a qualidade dos videos tipo HD (do jeito que ta não da pra ver muito coisa).
- Ter uma versão tipo ebook para dispositivos moveis.

Acho que se vocês fizerem essas duas modificações no layout da revista não vai ter pra ninguém....
[há +1 ano] - Responder

 

Devmedia - Equipe De Moderacao
Oi José, obrigado pelas dicas. estamos trabalhando para melhorar a qualidade do leitor digital e vamos estudar a possibilidade dessas sugestões.
[há +1 ano] - Responder
 

Jeosafá De Melo Freitas Júnior
Concordo plenamente com o comentário anterior, os vídeos estão com uma qualidade muito baixa
[há +1 mês] - Responder

 

Wesley Yamazack
Olá Jeosafá, muito legal receber sua crítica.

Apenas pra você ficar ciente, atualmente não temos mais videoaulas dentro das revistas.

Caso você tenha alguma ideia, crítica, ou queira dar alguma opinião fique livre pra me mandar um e-mail yamazack at gmail dot com, e tentarei te auxiliar da melhor forma possível.


Obrigado e um abraço.

[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[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
2013 - Todos os Direitos Reservados a web-03