Iniciando o estudo do framework Spring

Avatar


29 de junho3 min. de leitura

Olá, meu querido aluno e minha querida aluna do Gran Cursos! Estreio no Blog do Gran falando um pouco sobre o Spring, que é o framework Java mais popular do mundo! Ele é utilizado para facilitar a criação de aplicações Java, em um ambiente corporativo. A partir do Spring Framework 5.1, o Spring requer JDK 8+ (Java SE 8+) e fornece suporte pronto para uso para JDK 11 LTS.

Chamam por aí o Spring de um framework leve, ou lightweight, isso não porque ele trabalha com poucas classes ou poucas linhas de código, mas porque ele tem um impacto muito baixo nas aplicações. Com poucas linhas de código, você consegue deixar um app Java utilizando os benefícios do Spring e, da mesma forma, você também consegue parar de usar o String.

Uma característica que diferencia o Spring de outros frameworks (como o Apache Struts) é que ele não é voltado exclusivamente para aplicativos web. O Spring suporta uma ampla variedade de cenários de aplicativos. Em uma grande empresa, os aplicativos geralmente existem por um longo tempo e precisam ser executados em um JDK e em um servidor de aplicativos cujo ciclo de atualização está além do controle do desenvolvedor. Outros podem ser executados como um único jar com o servidor embutido, possivelmente em um ambiente de nuvem. Ainda outros podem ser aplicativos autônomos (como cargas de trabalho em lote ou de integração) que não precisam de um servidor.

O Spring ajuda a controlar toda essa diversidade.

O Spring é de código aberto. Possui uma comunidade grande e ativa que fornece feedback contínuo com base em uma ampla variedade de casos de uso do mundo real. Isso ajudou a Spring a evoluir com sucesso por muito tempo.

O Spring é baseado no padrão de projeto (Design Patterns) inversão de controle ou injeção de dependência. A inversão de controle (Inversion of Control ou IoC, em inglês) trata-se da interrupção do fluxo de execução de um código retirando o controle sobre ele e delegando-o para uma dependência ou container. O principal propósito é minimizar o acoplamento do código.

Considere um exemplo em que a classe Foo depende de uma instância da classe Bar para realizar algum tipo de processamento. Tradicionalmente, Foo cria uma instância de Bar, usando o operador new ou obtém uma instância de alguma factory class. Usando a abordagem IoC, uma instância de Bar (ou uma subclasse) é fornecida a Foo em tempo de execução por algum processo externo. Esse comportamento, a injeção de dependências (a dependência que estamos falando é a classe Foo, ao usar uma instância da classe Bar, passar a depender de Bar) em tempo de execução, levou o IoC a ser renomeado por Martin Fowler (se não conhece ele, é um dos grandões do desenvolvimento de software e o escritor de um dos livros mais famosos de padrões de projeto) para injeção de dependência (DI).

A implementação de DI do Spring é baseada em dois conceitos básicos de Java: JavaBeans e interfaces. Ao usar o Spring como provedor de DI, você obtém a flexibilidade para definir a configuração de dependência em seus aplicativos de diferentes maneiras (por exemplo, arquivos XML, classes de configuração Java, anotações em seu código ou o método de definição de bean Groovy).

JavaBeans (POJOs) fornecem um mecanismo padrão para criar recursos Java que são configuráveis de várias maneiras, como construtores e métodos setter. O Spring usa a especificação JavaBean para formar o núcleo de seu modelo de configuração DI; na verdade, qualquer recurso gerenciado pelo Spring é chamado de bean.

Interfaces e DI são tecnologias mutuamente benéficas. Projetar e codificar um aplicativo para interfaces torna um aplicativo flexível, mas a complexidade de conectar um aplicativo projetado usando interfaces é bastante alta e impõe uma carga de codificação adicional aos desenvolvedores.

Ao usar DI, você reduz a quantidade de código necessária para usar um design baseado em interface em um aplicativo para quase zero. Da mesma forma, usando interfaces, você pode obter o máximo da DI porque seus beans podem utilizar qualquer implementação de interface para satisfazer sua dependência.

No contexto de DI, o Spring age mais como um contêiner do que como uma estrutura — fornecendo instâncias de suas classes de aplicativos com todas as dependências de que precisam.

O uso do Spring para DI é muito tranquilo e depende de nada mais do que seguir as convenções de nomenclatura JavaBeans dentro das classes do aplicativo.

Entendo que essa introdução ao Spring e a explicação do que é a injeção de dependência no contexto do framework são suficientes para iniciarmos os estudos nesse tema árido! Espero ter ajudado na sua preparação! Um abraço e até a próxima postagem!


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2022

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Avatar


29 de junho3 min. de leitura