Spring Framework - Visão geral

Spring é a estrutura de desenvolvimento de aplicativos mais popular para Java empresarial. Milhões de desenvolvedores em todo o mundo usam o Spring Framework para criar código de alto desempenho, facilmente testável e reutilizável.

O Spring framework é uma plataforma Java de código aberto. Ele foi inicialmente escrito por Rod Johnson e foi lançado pela primeira vez sob a licença Apache 2.0 em junho de 2003.

A mola é leve quando se trata de tamanho e transparência. A versão básica do framework Spring tem cerca de 2 MB.

Os principais recursos do Spring Framework podem ser usados ​​no desenvolvimento de qualquer aplicativo Java, mas existem extensões para a construção de aplicativos da web na plataforma Java EE. O Spring framework visa tornar o desenvolvimento J2EE mais fácil de usar e promove boas práticas de programação ao habilitar um modelo de programação baseado em POJO.

Benefícios de usar o Spring Framework

A seguir está uma lista de alguns dos grandes benefícios do uso do Spring Framework -

  • O Spring permite que os desenvolvedores desenvolvam aplicativos de classe corporativa usando POJOs. O benefício de usar apenas POJOs é que você não precisa de um produto de contêiner EJB, como um servidor de aplicativos, mas tem a opção de usar apenas um contêiner de servlet robusto, como Tomcat ou algum produto comercial.

  • A primavera é organizada de forma modular. Mesmo que o número de pacotes e classes seja substancial, você precisa se preocupar apenas com aqueles de que precisa e ignorar o resto.

  • O Spring não reinventa a roda, em vez disso, ele realmente faz uso de algumas das tecnologias existentes, como vários frameworks ORM, frameworks de registro, timers JEE, Quartz e JDK e outras tecnologias de visualização.

  • Testar um aplicativo escrito com Spring é simples porque o código dependente do ambiente é movido para esta estrutura. Além disso, usando POJOs JavaBeanstyle, fica mais fácil usar injeção de dependência para injetar dados de teste.

  • A estrutura da web do Spring é uma estrutura MVC da web bem projetada, que fornece uma ótima alternativa para estruturas da web, como Struts ou outras estruturas da web com engenharia excessiva ou menos populares.

  • O Spring fornece uma API conveniente para converter exceções específicas de tecnologia (lançadas por JDBC, Hibernate ou JDO, por exemplo) em exceções consistentes e não verificadas.

  • Os contêineres IoC leves tendem a ser leves, especialmente quando comparados aos contêineres EJB, por exemplo. Isso é benéfico para desenvolver e implantar aplicativos em computadores com memória e recursos de CPU limitados.

  • O Spring fornece uma interface de gerenciamento de transações consistente que pode ser reduzida para uma transação local (usando um único banco de dados, por exemplo) e expandida para transações globais (usando JTA, por exemplo).

Injeção de Dependência (DI)

A tecnologia com a qual o Spring é mais identificado é o Dependency Injection (DI)sabor de Inversão de Controle. oInversion of Control (IoC)é um conceito geral e pode ser expresso de muitas maneiras diferentes. A injeção de dependência é apenas um exemplo concreto de inversão de controle.

Ao escrever um aplicativo Java complexo, as classes do aplicativo devem ser o mais independentes possível de outras classes Java para aumentar a possibilidade de reutilizar essas classes e testá-las independentemente de outras classes durante o teste de unidade. A injeção de dependência ajuda a colar essas classes e, ao mesmo tempo, mantê-las independentes.

O que é injeção de dependência exatamente? Vamos examinar essas duas palavras separadamente. Aqui, a parte da dependência se traduz em uma associação entre duas classes. Por exemplo, a classe A é dependente da classe B. Agora, vamos examinar a segunda parte, injeção. Tudo isso significa que a classe B será injetada na classe A pelo IoC.

A injeção de dependência pode acontecer na forma de passar parâmetros para o construtor ou por pós-construção usando métodos setter. Como a injeção de dependência é o coração do Spring Framework, explicaremos esse conceito em um capítulo separado com um exemplo relevante.

Programação Orientada a Aspectos (AOP)

Um dos principais componentes do Spring é o Aspect Oriented Programming (AOP)estrutura. As funções que abrangem vários pontos de um aplicativo são chamadascross-cutting concernse essas questões transversais são conceitualmente separadas da lógica de negócios do aplicativo. Existem vários bons exemplos comuns de aspectos, incluindo registro, transações declarativas, segurança, armazenamento em cache, etc.

A principal unidade de modularidade em OOP é a classe, enquanto em AOP a unidade de modularidade é o aspecto. DI ajuda a desacoplar seus objetos de aplicação uns dos outros, enquanto AOP ajuda a desacoplar interesses transversais dos objetos que eles afetam.

O módulo AOP do Spring Framework fornece uma implementação de programação orientada a aspectos, permitindo que você defina interceptores de método e pontos de corte para desacoplar claramente o código que implementa a funcionalidade que deve ser separada. Discutiremos mais sobre os conceitos de Spring AOP em um capítulo separado.