Trace Id is missing
Pular para o conteúdo principal
Pessoas trabalhando na tela do laptop em escritório

O que é o Java Spring Boot?

Uma introdução ao Spring Boot, a popular ferramenta baseada em Java para desenvolver aplicativos Web e microsserviços.

Pessoa observando a tela do laptop e usando o teclado externo com o mouse

O que é o Spring Boot?

O Java Spring Boot é uma ferramenta de software livre que facilita o uso de estruturas baseadas em Java para criar microsserviços e aplicativos Web. Para obter qualquer definição de Spring Boot, a conversa deve começar com Java, uma das linguagens de desenvolvimento e plataformas de computação mais populares e amplamente usadas no desenvolvimento de aplicativos. Desenvolvedores em todo o mundo começaram sua jornada de codificação aprendendo Java. Flexível e amigável, Java é a linguagem de desenvolvimento favorita de diversos aplicativos, abrangendo de mídias sociais, web e aplicativos de jogos até aplicativos corporativos e de rede.

Java e a estrutura do Spring

Embora Java possa ser fácil de usar e considerada mais fácil de aprender do que outras linguagens, o nível de complexidade para criar, depurar e implantar aplicativos Java já subiu para novas alturas. Isso ocorre devido ao número exponencial de variáveis que os desenvolvedores modernos enfrentam ao desenvolver aplicativos Web ou móveis para tecnologias modernas comuns, como aplicativos de streaming de música ou aplicativos móveis para pagamento em dinheiro. Um desenvolvedor criando um aplicativo de linha de negócios básico agora precisa lidar com várias bibliotecas, plug-ins, logs de erros e manipulação de bibliotecas, integrações com serviços Web e várias linguagens, como C#, Java, HTML e outras. É compreensível que haja uma demanda imensa por qualquer ferramenta que simplifique o desenvolvimento de aplicativos Java, economizando tempo e dinheiro aos desenvolvedores.

Insira estruturas de aplicativos, os grandes corpos de código pré-escrito que os desenvolvedores podem usar e adicionar ao próprio código de acordo com as suas necessidades. Essas estruturas aliviam a carga do desenvolvedor para praticamente qualquer necessidade, seja ao desenvolver aplicativos Web ou móveis ou trabalhando com computadores e APIs. As estruturas tornam a criação de aplicativos mais rápida, fácil e mais segura, fornecendo código e ferramentas reutilizáveis para ajudar a unir os diferentes elementos de um projeto de desenvolvimento de software.

É aqui que entra o Spring: Spring é um projeto de software livre que disponibiliza uma abordagem simplificada e modular para criar aplicativos com Java. A família de projetos Spring  começou em 2003 como uma resposta às complexidades iniciais de desenvolvimento em Java e fornece suporte para o desenvolvimento de aplicativos Java. O nome, Spring, sozinho, geralmente se refere à própria estrutura de aplicativos ou a todo o grupo de projetos ou módulos. Java Spring Boot é um módulo específico criado como uma extensão da estrutura do Spring.

Portanto, com esse plano de fundo sobre como a estrutura do Spring, o Spring Boot e o Java funcionam em conjunto, aqui está a definição de Spring Boot: a ferramenta que simplifica e acelera o desenvolvimento de aplicativos Web e microsserviços na estrutura do Spring em Java.

Às vezes, como a linguagem e/ou a plataforma é Java, ela é chamada de "Java Spring Boot," "estrutura do Spring para Java" ou a "estrutura do Spring Boot." Mas há outras estruturas de terceiros para Java, tais como Play e Hibernate, então é mais preciso dizer "Spring" e "Spring Boot."

Para acessar uma discussão de alto nível sobre noções básicas do Java, confira o artigo O que é Java?

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

Como mencionado anteriormente, o Spring é uma estrutura de aplicativo de software livre baseada em Java que abrange muitos projetos menores sob o seu guarda-chuva. Outros projetos populares de Spring incluem o Spring Data, o Spring Cloud e o Spring Security, para citar apenas alguns. Para compreender a diferença entre o Spring Boot e o Spring, é importante perceber que, embora possam haver diferenças nas principais funcionalidades, todos fazem parte da família Spring.

Para entender totalmente as diferenças entre o Spring e o Spring Boot, primeiro precisaremos definir alguns termos principais.

Uma pessoa olhando o laptop.
Uma mulher olhando para o tablet.

O que são microsserviços?

Microsserviços são uma abordagem para a arquitetura de desenvolvimento de software. O "micro" em microsserviços se refere ao código sendo fornecido em pequenas partes ou componentes gerenciáveis, e cada "serviço" ou função principal é criado e implantado independentemente dos outros serviços. Os componentes independentes trabalham em conjunto e se comunicam por meio de documentos de API prescritos chamados de contratos. A pequena escala e o isolamento relativo desses microsserviços disponibilizam muitos benefícios. Por exemplo, como esse tipo de arquitetura é distribuído e acoplado de forma flexível, o aplicativo inteiro não será interrompido se um componente falhar. Outros benefícios incluem a produtividade aprimorada, a manutenção mais fácil, o melhor alinhamento de negócios e maior tolerância a falhas.

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

A DI (injeção de dependência) é uma técnica de design usada para obter a inversão de controle (IoC). Na programação orientada a objeto como Java, os objetos que dependem de outros objetos são chamados de dependências. Normalmente o objeto de recebimento ou dependente é chamado de cliente e o objeto do qual o cliente depende é chamado de serviço. Portanto, a injeção de dependência passa o serviço para o cliente ou "injeta" a dependência usando o código chamado de injetor. A DI elimina a necessidade do cliente especificar qual serviço usar, o injetor executa esse trabalho para o cliente.

Uma pessoa olhando para o laptop e o monitor
Uma mulher usando um headset de realidade virtual

O que é a convenção sobre a configuração?

A convenção sobre configuração, às vezes chamada de codificação por convenção, é um conceito usado em estruturas de aplicativos para reduzir o número de decisões que um desenvolvedor precisa tomar. Ela segue o princípio "não se repetir" para evitar escrever código redundante. A codificação por convenção se esforça para manter a flexibilidade, enquanto permite que um desenvolvedor escreva apenas código para os aspectos não convencionais do aplicativo que está criando. Quando o comportamento desejado do aplicativo corresponde às convenções estabelecidas, o aplicativo será executado por padrão sem precisar gravar arquivos de configuração. O desenvolvedor só precisará escrever explicitamente os arquivos de configuração se o comportamento desejado se desviar da "convenção."

Estrutura do Spring versus Spring Boot

Como o Spring Boot se baseia nos benefícios da estrutura do Spring, não é realmente uma questão de "este ou aquele" do Spring versus Spring Boot, mas, em vez disso, um benefício por usar "e/ambos". Não é Spring versus Spring Boot; o Spring e o Spring Boot trabalham em conjunto:
plano de suporte para toda a organização
Spring Spring Boot
O que é?

Uma estrutura de aplicativo Web de software livre baseada em Java.

Uma extensão ou módulo criado na estrutura do Spring.

O que faz?

Fornece um ambiente flexível e completamente configurável usando ferramentas e bibliotecas de códigos predefinidos para criar aplicativos Web personalizados e flexíveis.

Fornece a capacidade de criar no Spring aplicativos autônomos que podem ser executados imediatamente sem a necessidade de anotações, configuração XML ou gravação de muitos códigos adicionais.

Quando devo utilizar?

Use o Spring quando desejar:

  • Flexibilidade.
  • Uma abordagem sem conceito.*
  • Para remover dependências do código personalizado.
  • Para implementar uma configuração muito exclusiva.
  • Para desenvolver aplicativos empresariais.

Use o Spring Boot quando desejar:

  • Facilidade de uso.
  • Uma abordagem com conceito.*
  • Para obter aplicativos de qualidade para executar rapidamente e reduzir o tempo de desenvolvimento.
  • Para evitar escrever código clichê ou configurar XML.
  • Para desenvolver APIs REST.
Qual é o seu principal recurso?

Injeção de dependência

Configuração automática

Tem servidores inseridos?

Não. No Spring, você precisará configurar explicitamente os servidores.

Sim, o Spring Boot vem com servidores HTTP internos, como Tomcat e Jetty.

Como ele é configurado?

A estrutura do Spring fornece flexibilidade, mas sua configuração precisa ser criada manualmente.

O Spring Boot automaticamente configura o Spring e outras estruturas de terceiros pelo princípio padrão de "convenção sobre a configuração".

Preciso saber como trabalhar com XML?

No Spring, é necessário conhecer a configuração do XML.

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

Tem ferramentas da CLI para aplicativos de desenvolvimento/teste?

A estrutura do Spring Framework por si só não fornece ferramentas da CLI para desenvolver ou testar aplicativos.

Como um módulo do Spring, o Spring Boot tem uma ferramenta de CLI para desenvolver e testar aplicativos baseados no Spring.

Funciona com uma abordagem com ou sem conceito?

Sem conceito*

Com conceito*

*Abordagem de estrutura com conceito versus sem conceito

Embora a palavra "com conceito" possa parecer muito negativa, tanto a abordagem com conceito do Spring Boot quanto a estrutura sem conceito do Spring têm suas vantagens.

Abordagem com conceito

Uma abordagem com conceito assume a posição de que existe uma maneira significativamente mais fácil do que todas as outras. Por design, o software limita os designers, incentivando-os a fazer as coisas dessa maneira prescrita.

Ela fornece um caminho bem preparado, a melhor prática que funcionará para a maioria das pessoas na maioria das situações. O aplicativo é escrito respeitando essas melhores práticas e as convenções já difundidas. Uma abordagem com conceito facilita muito a colaboração e obter ajuda com um projeto de codificação, já que outros desenvolvedores com experiência com essa estrutura já terão certa familiaridade com o novo aplicativo e poderão começar a trabalhar imediatamente com ele.

Abordagem sem conceito

Uma abordagem sem conceito será adotada se todas as soluções exigirem mais ou menos a mesma quantidade de esforço ou complexidade. Ela assume a posição de que não há uma única maneira certa para chegar à solução de um problema. Em vez disso, ela fornece ferramentas flexíveis que podem ser usadas para resolver o problema de várias maneiras. As estruturas sem conceito têm o benefício de fornecer muita flexibilidade no desenvolvimento e proporcionam mais controle para os desenvolvedores. A principal desvantagem com tanta flexibilidade é que o desenvolvedor tem mais decisões a tomar e pode precisar escrever mais código porque a estrutura é tão aberta e, bem, não tem conceitos.

Recursos e benefícios do Spring Boot

Por fim, a parte empolgante dos principais recursos que o Java Spring Boot fornece além da estrutura do Spring. O Spring Boot oferece um caminho mais fácil e rápido para instalar, configurar e executar aplicativos. Ele elimina o trabalho pesado de configuração que é essencial para a maioria dos aplicativos baseados em Spring. Os desenvolvedores podem entrar e usar o Spring Boot sem precisar aprender a estrutura subjacente do Spring.

Pessoa sentada em uma cadeira enquanto observa a tela do computador

Veja como os recursos Spring Boot ajudam a simplificar tarefas de programação em Java. Alguns dos principais recursos Spring Boot são:

Benefícios do Spring Boot

O Spring Boot:

Tutoriais do Java Spring Boot

Se você já estiver familiarizado com a criação de aplicativos usando a estrutura do Spring, provavelmente será fácil aprender a usar o Spring Boot com os tutoriais, os iniciadores de projeto e a documentação fornecidos nesta seção. Aqui estão algumas boas notícias se você estiver com problemas para usar Spring Boot, mas ainda não conhece a estrutura. É possível aprender o Spring Boot e começar a trabalhar com ele antes de aprender a estrutura do Spring, assim você aprenderá muitos dos conceitos básicos da estrutura à medida que prosseguir. Embora isso não ensine tudo o que há para saber sobre a estrutura, proporcionará um bom início se você decidir que depois quer aprender mais a respeito.

Outro benefício de aprender o Spring Boot, além de tornar o desenvolvimento de aplicativos muito mais rápido e eficiente, é que ele também prepara você para usar outras funcionalidades do Spring, como Spring Data, Project Reactor e Spring Security.

Pessoa com fones de ouvido falando pelo laptop
Dito isso, você perceberá que será mais fácil trabalhar em seu primeiro tutorial do Spring Boot se aprender primeiro como os conceitos básicos de injeção de dependência e inversão de controle funcionam na estrutura do Spring. Aqui está uma visão geral de alto nível:

Injeção de dependência

  • Baseada em XML, ou seja, <beans/> e <namespace:*/>.
  • Baseada em anotação, ou seja, @Component, @Autowired, @Inject.
  • Baseada em Java, ou seja, classes @Configuration, métodos @Bean.

Inversão de controle (IoC)

  • ApplicationContext: a interface raiz que serve como o contêiner de IoC do Spring.
  • BeanFactory: a interface para acessar o contêiner do Spring.
  • Beans: os objetos instanciados, montados e gerenciados pelo ApplicationContext.

Tutoriais do Java Spring Boot para iniciantes

Depois de dominar as noções básicas, se você estiver procurando criar e implantar aplicativos do Spring Boot em escala, considere fazer check-out do serviço totalmente gerenciado Azure Spring Cloud da Microsoft e do VMware. Ou comece imediatamente neste tutorial sobre como proteger seus aplicativos do Spring Boot com certificados TLS/SSL.

Criar e ajudar a proteger um aplicativo Java

Crie um aplicativo Java com o Spring Initializr usando o iniciador do Spring Boot para Microsoft Entra ID (anteriormente Azure Active Directory).

Implantar o seu primeiro aplicativo do Azure Spring Cloud

Aprenda a criar, provisionar e monitorar um aplicativo simples do Spring Boot criado com o Spring Initializr.

Criar um microsserviço simples do Spring Boot

Crie e implante um microsserviço simples e aprenda a adicionar tecnologias do Spring Cloud a ele.

Mais iniciadores do Spring Boot

Adicione recursos de armazenamento, segurança, autenticação e cofre de chaves aos seus aplicativos do Spring Boot.

Perguntas frequentes

  • Spring Boot é uma estrutura Web de software livre em Java, baseada em microsserviços e disponibilizada pelo Spring, particularmente útil para engenheiros de software que desenvolvem aplicativos Web e microsserviços.

  • "Spring Boot em Java" é outra maneira de dizer "Java Spring Boot", os dois termos podem ser usados de forma intercambiável. Java é a linguagem e a plataforma, Spring é a estrutura de aplicativos baseada em Java, e Spring Boot é uma extensão da estrutura do Spring que inclui alguns benefícios adicionais.

  • O Spring Boot tem a funcionalidade da estrutura geral do Spring, mas o Spring Boot não exige que você aprenda o Spring. Um desenvolvedor pode instalar e executar um aplicativo em menos tempo porque os atributos do Spring Boot são autoconfigurados e a abordagem com conceito remove grande parte do código clichê e da configuração envolvidos com o desenvolvimento e a implantação de aplicativos do Spring.

  • Sim, como mencionado acima, o Spring Boot é particularmente útil para uma abordagem de microsserviço para a arquitetura de desenvolvimento de software. Os microsserviços são uma maneira popular de criar equipes pequenas e autônomas que podem trabalhar de forma independente e, por sua própria natureza, os microsserviços só funcionam no back-end.

  • Tempo de desenvolvimento reduzido, maior produtividade e facilidade de uso são apenas alguns dos benefícios de desenvolver aplicativos com o Spring Boot.

  • Existem muitos tutoriais, guias de início rápido e documentação no site do Spring e também nos iniciadores e documentação do Spring Boot no Microsoft Azure. Se você quiser começar imediatamente a implantar aplicativos do Spring Boot, confira o webinar: Acelerar aplicativos do Spring Boot na nuvem em escala.

Estamos prontos para começar, vamos configurar sua conta gratuita do Azure