Guia itexto: o container de Injeção de Dependências do Spring 3.0

O que é injeção de dependências? E um container de injeção de dependências? Alto acoplamento? Pra que serve o Spring framework? O que isto tudo tem a ver com o meu dia a dia como desenvolvedor?

Após ouvir diversas vezes estas perguntas, resolvi arregaçar as mangas e escrever um pequeno guia que explica o que é o Spring Framework e seus conceitos relacionados: inversão de controle, injeção de dependências, o container, alto acoplamento e muitos outros conceitos relacionados. Aproveito e também exponho algumas boas práticas que tornarão a sua vida bem mais fácil.

Se você possui curiosidade a respeito deste framework, mas costuma se perder com os conceitos envolvidos, este guia é para você.

Nota: esta é apenas a primeira versão do guia. Com certeza algumas correções serão feitas nos próximos dias, e você é parte importante neste processo. Caso encontre algum erro ou sugestão, por favor, entre em contato comigo através dos comentários presentes neste blog ok?

Update (17/11/2010): a pedidos, fiz o upload do guia para o Scribd também. Pode ser acessado neste link.

Para baixar o guia, basta clicar no link abaixo:

17 thoughts on “Guia itexto: o container de Injeção de Dependências do Spring 3.0

  1. Excelente artigo não só de Spring, mas também de IoC e DI. Muitos vão aproveitar. Eu até teria economizado e nem mostrado a parte de configuração via XML :)

  2. Parabéns pelo guia, muito bom mesmo

    Legal ver a explicação de algumas annotations menos triviais, mas que são bastante úteis!

    O Padrão Factory citado é o Method Factory, isso?! :)

  3. Oi Pablo, fico feliz que tenha gostado. Valeu!

    Não, o padrão factory é o padrão factory da GoF mesmo :) – vou revisar o texto pra ver se deixo isto mais claro. Valeu!

  4. Oi Paulo, que bom que gostou! Valeu!

    A parte da configuração XML, apesar de muita gente detestar, acredito que seja importante estar presente, porque, ao menos na minha opinião, é bastante útil pra se obter uma compreensão do funcionamento dos padrões de IoC e DI.

  5. Gostei bastante da apostila Kico, achei bem didática e gostei especialmente o fato de você dar o conceito teórico do pattern junto com um código de exemplo e o caso de uso com o spring.

    Quando aprendi Design patterns na faculdade era bem difícil ver a teoria se encaixando com a prática(tanto que fiz a cadeira duas vezes =P) pois usavamos UML. Aprender Spring sem entender bem os conceitos que o regem e os benefícios que ele te traz é bem massante e diria até contra-produtivo.

    Parabéns.

  6. Oi Raphael, fico feliz que tenha gostado, valeu!

    Enfrentei os mesmos problemas que você. No caso do Spring, o grande problema que vejo é o seguinte: todo mundo sabe que é lindo e melhora nossos sistemas, mas poucas vezes li sobre COMO isto pode ser feito.

  7. Oi Kiko, parabéns pela apostila, conteúdo aparentemente “simples” do Spring, mas que muita gente não sabe e/ou usa de forma errada. Ficou bem didático!

    E discordo do Paulo quanto a não mostrar o conteúdo em XML; apesar de gostar dos metadados via anotações, a configuração XML ainda é a única que não põe o dedo no seu código.

    Abraço,

    @irobson

  8. Oi Robson, fico feliz que tenha gostado. Concordo com você a respeito do XML. Além disto, é também, na minha opinião, a melhor forma de expor o funcionamento por trás de um container de IoC.

    Tipo: é chato de escrever? Pode ser, mas torna explícito diversos detalhes do funcionamento que, muitas vezes, para o iniciante, passam despercebidos.

  9. Parabéns xará, o artigo está ótimo. A parte conceitual está muito esclarecedora. A comparação entre os tipos de configurações e suas utilizações no mesmo exemplo, foram fundamentais para absorção do conhecimento. Aprendi muito com a leitura.

  10. Opa “Henrique Lobo”! Que bom que gostou!

    Nota: existem dois “Henriques Lobo” no Brasil. Um sou eu, outro é ele! Não é o máximo?

  11. O link está quebrado para download. Seria possivel verificar. Agradeço. Estou lendo no scribd, mas queria o download.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.