O Spring é um conjunto de projetos em que cada um deles tem a finalidade de solucionar um problema específico. Ele nos possibilita programar tanto usando a linguagem Java quanto a linguagem Kotlin.
- Modularidade
- Voltado para infraestrutura
- Aplicações completas
- O Spring Framework: é responsável por tornar o nosso projeto apto para rodar na web.
- Spring Data: Provê um modelo de acesso a banco de dados.
- Spring Security: Cuida da parte da segurança da nossa aplicação.
- E por aí vai...
Os projetos do ecossistema Spring são independentes, isso quer dizer que podemos utilizá-los de forma isolada, como por exemplo em um sistema web simples que só façá uso do Spring Framework mas se porventura precisarmos de mais funcionalidades, podemos também combiná-los conforme a nossa necessidade.
São partes da aplicação, importantes para o seu funcionamento, mas que não estão diretamente ligadas às suas regras de negócio.
Por exemplo, imagine que no frontend da sua aplicação existe um formulário. No back-end, certamente teremos uma classe pra esse formulário. Mas como converter o texto digitado pelo usuário em uma classe? Sem o Spring MVC teríamos que escrever um código de conversão. Mas com o Spring MVC não precisamos nos preocupar com esse código de apoio, porque o framework se encarrega de entregar para o backend uma classe devidamente populada sempre que um formulário for enviado.
O Spring foi feito para aplicações corporativas, que podem começar pequenas, mas tendem a crescer à medida em que vão cobrindo mais áreas do negócio. Na prática, isso quer dizer que é possível criar aplicações menores, tipo um portal, blog, etc.