Aumento de Produtividade
 no Desenvolvimento de
 Aplicações em Java com
   Spring Framework

      Acadêmico: Fernando S. Godóy
   Orientadora: Prof.ª Késsia R. C. Marchi
O que é o Spring
             Framework
• Tecnologia que surgiu para resolver o problema de
  complexidade dos EJB´s.

• Composto por cerca de 20 módulos.

• Alguns Recursos:
• Possui Recurso Lazy Initialization.

• Implementa os Padrões de Inversão de Controle e
  Injeção de Dependência.
Inversão de Controle
Padrão em que designa-se um container ou outro
componente que possa controlar a execução.
Inversão de Controle
• No Spring os objetos são considerados Beans.

• Implementa o BeanFactory.

• Suporta dois padrões de objetos:
  Singleton e Prototype.
Injeção de Dependência
• Padrão que diz que uma classe não deve
  instanciar seus atributos, e sim que eles devem ser
  injetados.

• Vantagens em utilizar:

• Baixo acoplamento entre classes.

• Código Limpo e eficaz, pois os objetos são
  fornecidos com suas dependências.
Injeção de Dependência
• Suporta dois tipos de Injeção de Dependência:

• Constructor Injection que utiliza o próprio
  construtor da classe podendo este ter
  parâmetros ou não.

• Setter Injection utiliza os métodos setter para
  efetuar a injeção.

• Pode ser feita por annottation ou por
  configuração de um arquivo xml.
Estrutura
Spring Framework
Estrutura Spring
  Framework
Core Container

• Beans e Core: Peças Fundamentais que implementam o
  Container IOC. Implementam o BeanFactory.

• Context: Implementa uma forma de acesso ao objetos
  tendo como ApplicationContext seu foco principal.

• Expression Language: Permite Manipular objetos em
  tempo de execução.
AOP – Aspect Oriented Program


• AOP: Fornece suporte a AOP, permitindo a criação
  de Pointcuts e Method-Interceptors.

• Aspects: Fornece integração com AspectJ.

• Instrumentation: Fornece classes de instrumentação
  para ser usado em servidores de aplicativos.
Data Access/Integration
          •   JDBC: Fornece uma abstração de
              JDBC.

          •   ORM: Fornece camadas de
              integração para APIs de mapeamento
              objeto relacional.

          •   OXM: Fornece uma abstração para
              mapeamento objeto / XML.

          •   JMS: Contem recursos para produzir e
              consumir mensagens.

          •   Transactions: Suporta o
              gerenciamento de transações para
              classes que implementa interfaces
              especiais e POJO’s.
Web – MVC/Remoting
       • WEB: Oferece recursos
         básicos de integração Web.

       • Portlet: Fornece uma
         implementação MVC para
         um ambiente Portlet.

       • Servlet: Fornece uma clara
         separação entre código de
         domínio e formulários.

       • Struts: Permite suporte para
         integração com Struts.
Test

• Test: Fornece suporte para JUnit e
  TestNG, fornecendo também objetos Mock para
  testar seu código isoladamente.
Conclusão
      Spring é um framework com um potencial
indiscutível, e sua aplicação em projetos impacta em
     alto ganho de produtividade. Possui módulos
    bastante completos para desenvolvedores de
      aplicações Web e Desktop, permitindo ao
 programador dedicar-se à implementação da regra
 de negócio deixando que o Spring se encarregue do
                    resto do trabalho.
Dúvidas
Bibliografia
•   Balani, N. (2005) “Introduction to the Spring Framework”. <http://www.ibm.com/developerworks/web/library/wa-
    spring1/> acesso em 21 de junho 2011.

•   Calçado, P. (2008) “Curso Spring Framework”. <http://blog.flexdev.com.br/wp-content/uploads/spring/apostila-
    spring.pdf> acesso em 20 de maio 2011.

•   Carvalho, M. (2006) “Spring Framework Introdução”.
    <http://www.imasters.com.br/artigo/4497/java/spring_framework_introducao/> acesso em 19 de junho 2011.

•   Fowler, M. (2004) “Inversion of Control Containers and the Dependency Injection Pattern”.
    <http://www.martinfowler.com/articles/injection.html> acesso em 20 de julho 2011.

•   Johson, R. et Al (2011) “Spring Reference”. <http://static.springsource.org/spring/docs/3.1.x/spring-framework-
    reference/htmlsingle/spring-framework-reference.html> acesso em 17 de julho de 2011.

•   Pacheco, D. (2007) “Spring Framework 2.0 para Desenvolvimento de Aplicações em Java”.
    <http://pt.scribd.com/doc/18517573/Spring-Framework-20-Diego-Pacheco> acesso em 24 de julho 2011.

•   Schitini, I. et Al. (2011) “Spring Framework”. <http://kenai.com/projects/pos-sistemas-java-jf/sources/pos-java-
    ufjf-2009-2011/content/02-Daves/SpringFramework.doc?rev=48> acesso em 04 de junho 2011.

•   Weissmann, L. H. (2010) “Injeção de Dependência com Spring Framework”.
    <http://www.itexto.net/devkico/?p=859> acesso em 26/07/2011.
Obrigado!
   E-mail/MSN: fernandogodoy_18@msn.com

    Blog: www.fernandogodoy.worpress.com

            Twitter: @Fernandogodoy

Linked-in: http://www.linkedin.com/pub/fernando-
              god%C3%B3y/29/492/321

Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring Framework

  • 1.
    Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring Framework Acadêmico: Fernando S. Godóy Orientadora: Prof.ª Késsia R. C. Marchi
  • 2.
    O que éo Spring Framework • Tecnologia que surgiu para resolver o problema de complexidade dos EJB´s. • Composto por cerca de 20 módulos. • Alguns Recursos: • Possui Recurso Lazy Initialization. • Implementa os Padrões de Inversão de Controle e Injeção de Dependência.
  • 3.
    Inversão de Controle Padrãoem que designa-se um container ou outro componente que possa controlar a execução.
  • 4.
    Inversão de Controle •No Spring os objetos são considerados Beans. • Implementa o BeanFactory. • Suporta dois padrões de objetos: Singleton e Prototype.
  • 5.
    Injeção de Dependência •Padrão que diz que uma classe não deve instanciar seus atributos, e sim que eles devem ser injetados. • Vantagens em utilizar: • Baixo acoplamento entre classes. • Código Limpo e eficaz, pois os objetos são fornecidos com suas dependências.
  • 6.
    Injeção de Dependência •Suporta dois tipos de Injeção de Dependência: • Constructor Injection que utiliza o próprio construtor da classe podendo este ter parâmetros ou não. • Setter Injection utiliza os métodos setter para efetuar a injeção. • Pode ser feita por annottation ou por configuração de um arquivo xml.
  • 7.
  • 8.
  • 9.
    Core Container • Beanse Core: Peças Fundamentais que implementam o Container IOC. Implementam o BeanFactory. • Context: Implementa uma forma de acesso ao objetos tendo como ApplicationContext seu foco principal. • Expression Language: Permite Manipular objetos em tempo de execução.
  • 10.
    AOP – AspectOriented Program • AOP: Fornece suporte a AOP, permitindo a criação de Pointcuts e Method-Interceptors. • Aspects: Fornece integração com AspectJ. • Instrumentation: Fornece classes de instrumentação para ser usado em servidores de aplicativos.
  • 11.
    Data Access/Integration • JDBC: Fornece uma abstração de JDBC. • ORM: Fornece camadas de integração para APIs de mapeamento objeto relacional. • OXM: Fornece uma abstração para mapeamento objeto / XML. • JMS: Contem recursos para produzir e consumir mensagens. • Transactions: Suporta o gerenciamento de transações para classes que implementa interfaces especiais e POJO’s.
  • 12.
    Web – MVC/Remoting • WEB: Oferece recursos básicos de integração Web. • Portlet: Fornece uma implementação MVC para um ambiente Portlet. • Servlet: Fornece uma clara separação entre código de domínio e formulários. • Struts: Permite suporte para integração com Struts.
  • 13.
    Test • Test: Fornecesuporte para JUnit e TestNG, fornecendo também objetos Mock para testar seu código isoladamente.
  • 14.
    Conclusão Spring é um framework com um potencial indiscutível, e sua aplicação em projetos impacta em alto ganho de produtividade. Possui módulos bastante completos para desenvolvedores de aplicações Web e Desktop, permitindo ao programador dedicar-se à implementação da regra de negócio deixando que o Spring se encarregue do resto do trabalho.
  • 15.
  • 16.
    Bibliografia • Balani, N. (2005) “Introduction to the Spring Framework”. <http://www.ibm.com/developerworks/web/library/wa- spring1/> acesso em 21 de junho 2011. • Calçado, P. (2008) “Curso Spring Framework”. <http://blog.flexdev.com.br/wp-content/uploads/spring/apostila- spring.pdf> acesso em 20 de maio 2011. • Carvalho, M. (2006) “Spring Framework Introdução”. <http://www.imasters.com.br/artigo/4497/java/spring_framework_introducao/> acesso em 19 de junho 2011. • Fowler, M. (2004) “Inversion of Control Containers and the Dependency Injection Pattern”. <http://www.martinfowler.com/articles/injection.html> acesso em 20 de julho 2011. • Johson, R. et Al (2011) “Spring Reference”. <http://static.springsource.org/spring/docs/3.1.x/spring-framework- reference/htmlsingle/spring-framework-reference.html> acesso em 17 de julho de 2011. • Pacheco, D. (2007) “Spring Framework 2.0 para Desenvolvimento de Aplicações em Java”. <http://pt.scribd.com/doc/18517573/Spring-Framework-20-Diego-Pacheco> acesso em 24 de julho 2011. • Schitini, I. et Al. (2011) “Spring Framework”. <http://kenai.com/projects/pos-sistemas-java-jf/sources/pos-java- ufjf-2009-2011/content/02-Daves/SpringFramework.doc?rev=48> acesso em 04 de junho 2011. • Weissmann, L. H. (2010) “Injeção de Dependência com Spring Framework”. <http://www.itexto.net/devkico/?p=859> acesso em 26/07/2011.
  • 17.
    Obrigado! E-mail/MSN: fernandogodoy_18@msn.com Blog: www.fernandogodoy.worpress.com Twitter: @Fernandogodoy Linked-in: http://www.linkedin.com/pub/fernando- god%C3%B3y/29/492/321