[Spring Framework] – O que é?

Olá pessoal,

Resolvi fazer esse post inspirado no vídeo recem publicado no canal “SpringDeveloper” no youtube, onde o Mark Heckler explora por que os desenvolvedores amam o Spring, os vários componentes do Spring, e como você e sua equipe de desenvolvimento podem começar a construir e implantar aplicativos “Cloud Native” hoje com a produtividade extrema que impulsionou o Spring para o primeiro lugar dos frameworks queridinhos da galera Java no mundo de microserviços.

Historia

Na verdade tem uma longa historia ai, tudo começou em 2002 quando o Rod Johnson resolveu lançar uum livro chamado “J2EE Development without EJB”, desenvovimento J2EE sem EJB, naquela epoca quando se falava em java se falava também em J2EE e muito XML, mas muuuuito xml.

Dai começos a ver o conceito de Inversão de Controle e Injeção de dependencia sendo implementado de uma maneira simplista neste framework, tudo genial.

E acreditem, muita gente adorava XML, e a coisa toda era mais ou menos assim:

O framework foi evoluindo sendo uma proposta de desenvolvimento acelerado sem usar EJB, então você já tinha varios conceitos sendo implementados especialmente para o mundo enterprise. A primeira versão milestone foi lançada somente em 2004, dai seguimos com as seguintes versões e features:

  • Spring 2.0, lançado em 2006, simplificou a configuração de arquivos de configuração em XML.
  • Spring 2.5, lançado em 2007, introduziu ao mundo as configurações por anotações.
  • Spring 3.2, lançado em 2012, introduziu ‘Java configuration’, adicionou suporte ao Java 7, Hibernate 4, Servlet 3.0. 
  • Spring 4.0, lançado em 2014, trouxe suporte ao Java 8
  • Spring Boot também foi lançado em 2014.
  • Spring 5.0 saiu em 2017. Spring Boot 2.x trazendo suporte ao Spring 5.

Acompanhando a Industria

Ta mas, o framework evoluiu tanto assim? A Reposta curta é: SIM. A verdade é que nos últimos anos a quantidade de tecnologia que um programador Java precisa ter para se tornar produtivo é enorme, e uma das principais vantagens em utilizar o spring framework é que ele abstrai muitas dessas tecnologias, e a cada lançamento o suporte a algum framework é adicionado, hoje eu já posso dizer que as grandes áreas do desenvolvimento de uma aplicação enterprise já são cobertas pelo spring de alguma maneira ou de outra, veja a imagem abaixo:

Spring Cloud

Falando de tendencias modernas de desenvolvimento, principalmente quando se fala em cloud native, o suporte e crescimento do spring acaba ficando mais claro, principalmente o projeto Spring Boot.

Se como desenvolvedor quero, por exemplo, desenvolver uma aplicação Web, posso utilizar Spring Web, Servlet puro, ou até algum framework para template como por exemplo o Thymeleaf dentre outros.

Se quero desenvolver Microserviços, nem precisa falar muito, tá lá o Spring Boot, líder de mercado, com um monte de recursos e com o tempo de desenvolvimento extremamente acelerado. Somado a isso ainda temos a familia de projetos spring cloud que meu Deus, cobrem tudo que você irá pensar que vai precisar quando tiver arquiteturando sua solução distribuida: Circuit Breaker, Service Discovery, API Gateway, configuration server e etc.

https://spring.io/microservices

Servless também está sendo coberto pela equipe do spring framework, hoje já é possível encontrar o spring cloud function para esse proposito.

https://spring.io/serverless

Falando em cloud e arquitetura reativa a equipe do spring framework também não ficou pra atras, veja por exemplo o projeto Spring Cloud Stream que permite interagir facilmente com um midleware de mensageria

https://spring.io/projects/spring-cloud-stream

Suporte a linguagem Kotlin

Com o spring também é possível programar usando kotlin, linguagem de programação que tem inumeras vantagens, ela é bem menos verbosa e esta cada vez mais sendo adotada, abaixo um pequeno exemplo:

É isso pessoal, razões não faltam pra aprender os projetos da familia Spring: Spring boot, Spring cloud e os demais projetos.

Recomendo assistirem o vídeo, é bem legal!

Abrcs.
Natanael Fonseca

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s