Trace Id is missing
Avançar para o conteúdo principal
Pessoas a trabalhar no escritório no ecrã do respetivo portátil

O que é o Java Spring Boot?

Uma introdução ao Spring Boot, uma ferramenta popular e baseada em Java para desenvolver aplicações Web e microsserviços.

Uma pessoa a olhar para o ecrã de um portátil e a utilizar um teclado externo com rato

O que é o Spring Boot?

O Java Spring Boot é uma ferramenta open source que simplifica a utilização de estruturas baseadas em Java para criar microsserviços e aplicações Web. Quando se define o Spring Boot, é impossível não falar logo de Java, uma das linguagens de programação e plataformas informáticas mais populares e mais utilizadas no desenvolvimento de aplicações. Os programadores do mundo inteiro começam a sua jornada de programação a aprender Java. Mais flexível e fácil de utilizar, a linguagem Java é a preferida dos programadores para uma série de aplicações: desde aplicações Web, de redes sociais e de jogos a aplicações de rede e empresariais.

Java e a estrutura do Spring

Apesar de Java poder ser fácil de utilizar e mais fácil de aprender do que outras linguagens, o nível de complexidade para criar, depurar e implementar aplicações Java atingiu patamares muito elevados. Isto deve-se ao número exponencial de variáveis com que os programadores modernos se deparam quando desenvolvem aplicações para dispositivos móveis ou aplicações Web para tecnologias modernas comuns, como transmissão de música ou aplicações para dispositivos móveis de pagamento em dinheiro. Hoje em dia, um programador que escreve uma aplicação básica de linha de negócio tem de lidar com várias bibliotecas, plug-ins, bibliotecas de registo e tratamento de erros, integrações com serviços Web e várias linguagens, como C#, Java, HTML, entre outras. Como é compreensível, existe uma procura insaciável de ferramentas que simplifique o desenvolvimento de aplicações Java, de modo a poupar tempo e dinheiro aos programadores.

Conheça as estruturas de aplicações, isto é, um grande conjunto de código previamente escrito que os programadores podem utilizar e adicionar ao próprio código, conforme as necessidades. Estas estruturas aliviam a carga do programador em praticamente todos os casos, quer estejam a desenvolver aplicações Web e para dispositivos móveis ou a trabalhar com computadores e APIs. As estruturas tornam a criação de aplicações mais rápida, fácil e segura ao disponibilizarem código reutilizável e ferramentas que ajudam a integrar os vários elementos de um projeto de desenvolvimento de software.

É aqui que entra o Spring: o Spring é um projeto open source que apresenta uma abordagem simplificada e modular em relação à criação de aplicações com Java. O grupo de  projetos Spring começou em 2003 como resposta às complexidades dos primórdios do desenvolvimento Java e fornece suporte para o desenvolvimento de aplicações Java. O nome Spring, por si só, refere-se geralmente à própria estrutura da aplicação ou a todo o grupo de projetos ou módulos. O Java Spring Boot é um módulo específico que foi criado como uma extensão da estrutura do Spring.

Depois de saber como a estrutura do Spring, o Spring Boot e o Java funcionam em conjunto, esta é a definição do Spring Boot: é uma ferramenta que simplifica e acelera o desenvolvimento de aplicações Web e microsserviços na estrutura do Java, o Spring.

Às vezes, como a linguagem e/ou a plataforma é Java, esta é denominada "Java Spring Boot", "estrutura do Java Spring" ou "estrutura do Spring Boot." No entanto, como existem outras estruturas de terceiros para Java, como o Play e Hibernate, é mais correto dizer "Spring" e "Spring Boot".

Consulte este artigo para uma análise mais aprofundada dos conceitos básicos de Java: O que é o Java?

Qual é a diferença entre o Spring e o Spring Boot?

Como mencionado anteriormente, o Spring é uma estrutura de aplicação open source baseada em Java que engloba vários projetos mais pequenos sob a sua alçada. Entre os projetos mais populares do Spring figuram o Spring Data, o Spring Cloud e o Spring Security, só para citar alguns. Para compreender a diferença entre o Spring Boot e o Spring, é importante perceber que, embora possa haver diferenças em termos de funcionalidades essenciais, tudo faz parte da família Spring.

Para compreender totalmente as diferenças entre o Spring e o Spring Boot, é necessário definir primeiro alguns termos-chave.

Uma pessoa a olhar para um portátil.
Uma mulher a olhar para um tablet.

O que são os microsserviços?

Os microsserviços consistem numa abordagem à arquitetura de desenvolvimento de software. O termo "micro" em microsserviços refere-se ao facto de o código ser apresentado em pequenas partes ou componentes que podem ser geridas e de cada "serviço" ou função principal ser criado e implementado de forma independente dos outros serviços. Os componentes independentes trabalham em conjunto e comunicam através de documentos API prescritos, designados por contratos. A pequena escala e o relativo isolamento destes microsserviços apresentam muitos benefícios. Por exemplo, uma vez que este tipo de arquitetura é distribuída e relativamente interligada, a aplicação no seu todo não se desintegra se um componente falhar. Além disso, a produtividade é melhorada, a manutenção é mais fácil, o alinhamento comercial é melhor e a tolerância a falhas é maior.

O que é a injeção de dependência?

A injeção de dependência (DI) é uma técnica de design utilizada para obter a inversão de controlo (IoC). Na programação orientada para objetos como Java, os objetos que dependem de outros objetos são designados como dependências. Geralmente, o objeto recetor ou dependente é designado por cliente e o objeto do qual o cliente depende é designado por serviço. Desta forma, a injeção de dependência transfere o serviço para o cliente ou "injeta" a dependência através de um código chamado injetor. A DI faz com que o cliente não precise de especificar que serviço deve utilizar, uma vez que o injetor assume essa responsabilidade.

Uma pessoa a olhar para um portátil e para um monitor
Uma mulher a usar um headset de VR

O que é a convenção em detrimento da configuração?

A convenção em detrimento da configuração, também designada por programação por convenção, é um conceito utilizado em estruturas de aplicações para reduzir o número de decisões que um programador tem de tomar. Este conceito adota a máxima "evite repetições" para não escrever código desnecessário. A programação por convenção tenta manter a flexibilidade, o que permite a um programador escrever código apenas para os aspetos não convencionais da aplicação que está a criar. Quando o comportamento pretendido da aplicação corresponde às convenções estabelecidas, a aplicação será executada por predefinição sem que seja necessário escrever ficheiros de configuração. O programador só terá de escrever explicitamente ficheiros de configuração se o comportamento pretendido divergir da "convenção".

Estrutura do Spring vs. Spring Boot

Como o Spring Boot é desenvolvido com base nos benefícios da estrutura do Spring, não se trata realmente de uma questão de "optar por um ou outro", pelo contrário, podemos "tirar partido dos dois". Em suma, não se trata de Spring vs. Spring Boot, visto que o Spring e Spring Boot caminham lado a lado:
plano de suporte em toda a organização
Spring Spring Boot
O que é?

Uma estrutura de aplicação Web open source baseada em Java.

Uma extensão ou módulo desenvolvido com base na estrutura do Spring.

Para que serve?

Oferece um ambiente flexível e completamente configurável, com ferramentas e bibliotecas de código pré-criado, para criar aplicações Web personalizadas e relativamente interligadas.

Oferece a capacidade de criar aplicações Spring autónomas que podem ser executadas imediatamente sem a necessidade de anotações, configuração XML ou de escrever muito código adicional.

Quando é que o devo utilizar?

Utilize o Spring quando quiser:

  • Flexibilidade.
  • Uma abordagem flexível.*
  • Remover dependências do seu código personalizado.
  • Implementar uma configuração muito exclusiva.
  • Desenvolver aplicações empresariais.

Utilize o Spring Boot quando quiser:

  • Facilidade de utilização.
  • Uma abordagem dogmática.*
  • Obter aplicações de qualidade a funcionar rapidamente e reduzir o tempo de desenvolvimento.
  • Evitar escrever código repetitivo ou configurar XML.
  • Desenvolver APIs REST.
Qual é a funcionalidade principal?

Injeção de dependência

Configuração automática

Tem servidores incorporados?

Não. No Spring, terá de configurar os servidores de forma explícita.

Sim, o Spring Boot inclui servidores HTTP incorporados, como o Tomcat e o Jetty.

Como é configurado?

A estrutura do Spring oferece flexibilidade, mas a respetiva configuração tem de ser criada manualmente.

O Spring Boot configura o Spring e outras estruturas de terceiros automaticamente pelo princípio predefinido "convenção em detrimento de configuração".

Tenho de saber como trabalhar com XML?

No Spring, são necessários conhecimentos de configuração XML.

O Spring Boot não requer configuração XML.

Existem ferramentas CLI para aplicações de desenvolvimento/teste?

A estrutura do Spring, por si só, não fornece ferramentas CLI para desenvolver ou testar aplicações.

Como um módulo do Spring, o Spring Boot tem uma ferramenta CLI para desenvolver e testar aplicações baseadas em Spring.

Funciona com uma abordagem dogmática ou flexível?

Flexível*

Dogmática*

* Abordagem de estrutura dogmática vs. flexível

Embora a palavra "dogmática" possa soar vagamente negativa, tanto a abordagem dogmática do Spring Boot como a abordagem flexível da estrutura do Spring têm as suas vantagens.

Abordagem dogmática

Uma abordagem dogmática parte do princípio de que existe uma forma que é significativamente mais fácil do que todas as outras. Por predefinição, o software limita os designers, sendo que os incentiva a fazer as coisas dessa forma recomendada.

Apresenta um caminho sólido, uma melhor prática que irá servir para a maioria das pessoas na generalidade das situações. A aplicação é escrita com base nestas melhores práticas e convenções generalizadas. Uma abordagem dogmática simplifica muito a colaboração e a obtenção de ajuda para um projeto de programação, sendo que os outros programadores que tenham experiência com essa estrutura terão uma familiaridade instantânea com a nova aplicação e poderão começar imediatamente.

Abordagem flexível

Uma abordagem flexível é adotada se todas as soluções exigirem aproximadamente a mesma quantidade de esforço ou complexidade. Assume a posição de que não existe uma única forma correta de chegar a uma solução para um problema. Em vez disso, fornece ferramentas flexíveis que podem ser utilizadas para resolver o problema de várias formas. As estruturas flexíveis têm a vantagem de proporcionar muita flexibilidade no desenvolvimento e permitem um maior controlo por parte dos programadores. A principal desvantagem de tanta flexibilidade é que o programador tem mais decisões a tomar e pode acabar por ter de escrever mais código porque a estrutura é tão livre e, digamos, flexível.

Funcionalidades e benefícios do Spring Boot

Por fim, a parte mais interessante: as principais funcionalidades que o Java Spring Boot apresenta além da estrutura do Spring. O Spring Boot oferece um caminho mais fácil e rápido para definir, configurar e executar aplicações. Ele não requer o esforço intenso de configuração que é necessário para configurar a maioria das aplicações baseadas em Spring. Os programadores podem começar a utilizar o Spring Boot sem ter de se familiarizar com a estrutura do Spring subjacente.

Uma pessoa sentada numa cadeira e a olhar para o ecrã do computador

Vejamos como as funcionalidades do Spring Boot ajudam a simplificar as tarefas de programação Java. Seguem-se algumas das principais funcionalidades do Spring Boot:

Benefícios do Spring Boot

Spring Boot:

Tutoriais do Java Spring Boot

Se já estiver familiarizado com a criação de aplicações através da estrutura do Spring, é provável que seja fácil para si familiarizar-se com o Spring Boot através de tutoriais, de iniciadores de projetos e de documentação fornecida nesta secção. No entanto, há boas notícias se quiser começar a utilizar já o Spring Boot, mas ainda não conhece a estrutura. É possível aprender o Spring Boot (e começar a trabalhar com o mesmo) antes de aprender a estrutura do Spring, uma vez que irá aprender muitos dos fundamentos da estrutura à medida que avança. Embora isto não lhe ensine tudo o que há para saber sobre a estrutura, dar-lhe-á uma excelente base caso decida continuar a aprendizagem mais tarde.

Além de tornar o desenvolvimento de aplicações muito mais rápido e eficiente, outro benefício de conhecer o Spring Boot é que este também permite a utilização de outras funcionalidades do Spring, nomeadamente o Spring Data, o Project Reator e o Spring Security.

Uma pessoa a falar através de um portátil com auscultadores
Dito isto, será mais fácil concluir o primeiro tutorial sobre o Spring Boot se aprender em primeiro lugar como funcionam os conceitos básicos de injeção de dependência e inversão de controlo na estrutura do Spring. Segue-se uma descrição geral de alto nível:

Injeção de dependência

  • Baseada em XML, ou seja, <beans/> e <namespace:*/>.
  • Baseada em anotações, ou seja, @Component, @Autowired, @Inject.
  • Baseada em Java, ou seja, @Configuration classes, @Bean methods.

Inversão do controlo (IoC)

  • ApplicationContext: a interface de raiz que funciona como o contentor IoC do Spring.
  • BeanFactory: a interface para aceder ao contentor do Spring.
  • Beans: os objetos instanciados, montados e geridos por ApplicationContext.

Tutoriais do Java Spring Boot para principiantes

Assim que dominar as noções básicas, caso pretenda criar e implementar aplicações do Spring Boot em escala, experimente o serviço Azure Spring Cloud totalmente gerido pela Microsoft e pela VMware. Em alternativa, pode começar já com este tutorial sobre como proteger as suas aplicações do Spring Boot com certificados TSL/SSL.

Crie e ajude a proteger uma aplicação Java

Crie uma aplicação Java com o Spring Initializr, ao utilizar o iniciador (starter) do Spring Boot para o Microsoft Entra ID (anteriormente conhecido como Azure Active Directory).

Implemente a sua primeira aplicação no Azure Spring Cloud

Aprenda a criar, aprovisionar e monitorizar uma aplicação Spring Boot simples criada com o Spring Initializr.

Crie um microsserviço Spring Boot simples

Crie e implemente um microsserviço simples e, em seguida, aprenda a incluir tecnologias do Spring Cloud no mesmo.

Mais iniciadores do Spring Boot

Adicione funcionalidades de armazenamento, segurança, autenticação e cofre de chaves às suas aplicações do Spring Boot.

FAQs

  • O Spring Boot é uma estrutura Web em Java open source e baseada em microsserviços disponibilizada pela Spring, sendo particularmente útil para engenheiros de software que desenvolvem aplicações Web e microsserviços.

  • Dizer "Spring Boot em Java" é o mesmo que dizer "Java Spring Boot". Os dois termos podem ser usados de forma intercambiável. Java é a linguagem e a plataforma, Spring é a estrutura de aplicação baseada em Java e Spring Boot é uma extensão da estrutura do Spring, com alguns benefícios adicionais.

  • O Spring Boot tem a funcionalidade da estrutura geral do Spring, mas o Spring Boot não exige que o utilizador se familiarize com o Spring. Um programador pode implementar uma aplicação em menos tempo porque os atributos do Spring Boot são configurados automaticamente e a abordagem dogmática dispensa uma grande parte do código repetitivo e da configuração associados ao desenvolvimento e à implementação de aplicações do Spring.

  • Sim, como já foi referido, o Spring Boot é particularmente útil no âmbito de uma abordagem de microsserviços em relação à arquitetura de desenvolvimento de software. Os microsserviços são uma forma comum de criar equipas pequenas e autónomas que podem trabalhar de forma independente e, em virtude da sua própria natureza, os microsserviços só funcionam em back-end.

  • A redução do tempo de desenvolvimento, o aumento da produtividade e a facilidade de utilização são apenas alguns dos benefícios do desenvolvimento de aplicações do Spring Boot.

  • Existem muitos tutoriais, guias de início rápido e documentação no site do Spring , bem como a documentação e iniciadores do Spring Boot do Microsoft Azure. Se quiser começar imediatamente a implementar aplicações do Spring Boot, veja o webinar, Accelerate Spring Boot Applications to Cloud at Scale.

Está tudo a postos para começar, vamos configurar a sua conta gratuita do Azure