Spring: Conheça esse framework Java
Autores: Cássio Murilo e Jeniffer Bittencourt
O que é um Framework?
Framework é uma ferramenta muito utilizada em diversas áreas da programação que otimiza o trabalho das pessoas desenvolvedoras, fazendo com que ele seja focado no desenvolvimento do projeto e não nos processos de configuração e padronização.
Vale ressaltar que antes de mergulhar num framework é altamente recomendável que você estude e conheça bem os fundamentos da linguagem que quer explorar. Isso vai fazer com que seu aprendizado e crescimento no estudo do framework seja mais fluido e que não seja necessário voltar nos conceitos da linguagem para entender o que de fato aconteceu caso ocorra um comportamento não esperado.
Para se aprofundar e conhecer mais sobre frameworks você pode dar uma olhada no vídeo do Hipster Ponto Talks sobre como e por que escolher um framework para seus projetos.
O que é o Spring Framework?
Dentre muitos frameworks do mercado como Angular, Laravel, Bootstrap e até mesmo Scrum, o Spring é de forma disparada o framework mais popular do mundo quando falamos de Java.
Essa popularidade se deve principalmente ao fato de que o Spring surgiu com o intuito de tornar a programação Java mais rápida, fácil e segura, otimizando o trabalho de desenvolvimento. E quem não gosta de ferramentas que facilitem o trabalho, não é mesmo?
Com o Spring é possível ter maior domínio do projeto que está sendo desenvolvido, tendo como maior característica o suporte à infraestrutura direto na aplicação, permitindo assim que os times de desenvolvimento possam se concentrar na parte lógica da aplicação, sem precisar se preocupar desnecessariamente com questões de configuração de ambiente. E você pode conferir mais detalhes sobre o Spring no vídeo do Hipsters Ponto Tube que fala O que é o Spring Framework e também nesse artigo.
Quais benefícios ele oferece?
Gerenciamento de dependências através de injeção de dependência
Vamos supor que criamos uma aplicação Java com algumas Classes e subimos no sistema.
Os objetos dessas Classes serão instanciados em memória e essas Classes terão alguma relação entre si. Logo, depois de toda inicialização da aplicação, é feita a rede de conexões entre os objetos, usando referências para estes objetos. Isso nada mais é do que a lógica de negócio criada durante o desenvolvimento. Perfeito!
Vamos supor que nesse sistema temos uma Classe Aluno
e uma Classe ForumService
, que posta dúvidas no fórum. Para utilizar os métodos da Classe ForumService
dentro da Classe Aluno
podemos instanciar essa Classe dentro de um método de Aluno
.
public class Aluno {0
public postaMensagem (String titulo, String duvida) {
ForumService postaDuvida = new ForumService();
postaDuvida.enviaDuvida(titulo, duvida);
}
}
Isto é ruim? Muito!
Vamos pensar em um cenário macro. A manutenção ou alteração das regras de negócio seria muito trabalhosa, uma vez que entraríamos em Classe por Classe para alterar essas mudanças, tamanha a dependência que a Classe Aluno possui da Classe ForumService
diretamente.
Como regra, uma Classe de alto nível não pode depender de uma Classe de baixo nível, mas sim de abstrações.
Neste caso, podemos delegar ao Spring que ele gerencie essas instâncias de objetos para que isso não fique sob responsabilidade de quem está desenvolvendo a aplicação. Por exemplo: uma aplicação em que, no contexto geral, quem gerencia é o Spring. Todas as vezes em que ela for iniciada, as Classes, sejam elas quais forem, pedirão para o Spring as instâncias necessárias.
Conectividade com Banco de Dados
Esse módulo do Spring traz a possibilidade de trabalharmos com mais facilidade utilizando recursos de banco de dados. Através dele as tecnologias de acesso a dados e os processos de bancos relacionais e não-relacionais são integrados de uma maneira mais direta, minimizando o tempo perdido com configurações, ao mesmo tempo que mantém as características de armazenamento.
O Spring Data é um módulo bem abrangente, que possui vários submódulos específicos para atuar em determinados bancos. Essa divisão e especificação permite que sejam utilizados módulos mais apropriados para o banco escolhido, o que dá um maior domínio sobre a aplicação no projeto com as particularidades que cada um demanda.
Tempos atrás, uma das maneiras mais utilizadas de conexão com banco de dados era o famoso JDBC, porém, trabalhar com ele costumava ter algumas dificuldades, desde a conectividade até uma implementação na busca de informação no banco.
Hoje, o Spring Framework nos oferece a possibilidade de usar o Spring Data para não precisarmos usar toda aquela estrutura do JDBC nos “bastidores”. Em vez disso, há mais facilidade em se comunicar com qualquer banco, seja ele MySQL, Postgrees ou demais processadores de dados.
Aplicações Web
O Spring MVC surgiu como uma evolução do Java EE com o intuito de facilitar o trabalho de quem desenvolve aplicações web. Esse módulo já traz todas as funcionalidades que precisamos para desenvolver aplicações robustas e ao mesmo tempo flexíveis, fazendo com que não precisemos nos preocupar com configurações do tipo EJB, EJB com Jakarta EE, JSF, integração com CDI e outras necessárias do Java EE.
Muitas aplicações web necessitam que haja uma maneira dinâmica em lidar com páginas HTML, CSS, Javascript e eis que temos o Spring MVC que traz toda essa facilidade. Ela permite desenvolver facilmente aplicações web e APIs Rest usando a mesma estrutura de injeção de dependência.
Segurança nas suas aplicações
Já o Spring Security é focado em trazer uma estrutura de autenticação robusta e ao mesmo tempo altamente personalizável. Por meio dele é que podemos proteger as aplicações Spring.
Com o objetivo de segurança, esse módulo se concentra em fornecer autenticação e autorização para as aplicações tendo como ponto de destaque a facilidade de adaptação de seus requisitos para atender às demandas e solicitações variadas dos projetos que vão precisar utilizá-lo.
Como consigo utilizar o Spring Framework com Java?
Já falamos bastante sobre a utilização do Spring como framework Java, mas não é só nessa linguagem que ele se destaca. O Kotlin é uma linguagem de programação moderna, concisa e segura que vem sendo bastante utilizada pelas pessoas desenvolvedoras para Android e até mesmo iOS como opção ao Swift e desde a versão 2.2 do Spring Boot o Kotlin foi 100% integrado ao framework.
"Mas e se não quero desenvolver mobile?". O Kotlin também é utilizado para desenvolvimento web e desktop, apesar de ser massivamente utilizado para mobile.
Quer aprender a desenvolver uma API REST e ver como uma linguagem moderna como Kotlin somado a um dos frameworks mais utilizados no mercado trabalharem juntos?
Na Alura tem o curso API Rest com Kotlin e Spring Boot: Camada Web. Dê uma conferida!
Como utilizar o Spring Framework com Java?
Nesse artigo conhecemos o conceito de framework e como eles podem ajudar quem desenvolve no dia a dia, facilitando e agilizando os processos de trabalho.
Avançando no conhecimento de frameworks, conhecemos o queridinho de quem trabalha com Java, o Spring, entendendo como ele pode tornar o processo de desenvolvimento mais focado no código em si. Também aprendemos um pouco sobre alguns de seus módulos mais utilizados.
Por fim, descobrimos a versatilidade do Spring que, além de ser utilizado em projetos Java, pode também ser uma excelente opção para aquelas pessoas que querem desenvolver aplicações utilizando Kotlin.
Não deixe de conferir os conteúdos adicionais sobre o Spring e continuar seu mergulho em tecnologia. E aí, o que você achou? Deixe seu comentário e até a próxima.