22 Perguntas e respostas frequentes da entrevista Spring Boot

Você é um desenvolvedor Java Spring Boot ansioso para participar de uma próxima entrevista, mas não tem certeza de quais perguntas esperar? Estamos aqui para ajudar!

Este artigo ajudará você a se preparar adequadamente, descrevendo várias perguntas e respostas frequentes da entrevista do Spring Boot que os entrevistadores podem usar para testá-lo.

Os entrevistadores usam perguntas estratégicas do Java Spring Boot para testar os níveis de habilidade dos entrevistados relevantes para a função designada. Portanto, você precisa se preparar com perguntas relevantes e saber respondê-las.

Antes de pular direto para as perguntas da entrevista e suas respostas correspondentes, vamos abordar uma visão geral básica do que é o Spring Boot e como ele é útil para os desenvolvedores Java.

O que é o Java Spring Boot?

Essa estrutura Java é uma criação da equipe principal em 2014. O Spring Boot, que é uma estrutura de código aberto, desenvolve com eficiência aplicativos independentes, de nível de produção, e também podem ser executados em uma Java Virtual Machine (JVM).

Os desenvolvedores Java o preferem para o desenvolvimento de aplicativos da Web e microsserviços por seu processo de configuração rápido e fácil e tempo de configuração seguro.

A fácil instalação e configuração dos aplicativos baseados em Spring pelo Spring Boot são possíveis com seus três recursos principais, que incluem:

  • Autoconfiguration – que é uma configuração automática do aplicativo Spring.
  • O Spring Boot fornece uma abordagem opinativa para os padrões de configuração a serem usados ​​e os pacotes a serem instalados para as dependências necessárias. Essa abordagem opinativa ajuda na configuração rápida dos projetos.
  • Sprsetupoot permite que você execute seu aplicativo de forma independente sem a necessidade de um servidor web.

Como o Spring Boot é útil para desenvolvedores Java?

Por um lado, os desenvolvedores Java que usam o Spring Boot têm mais facilidade com a configuração automática de todos os componentes necessários para desenvolver um aplicativo Spring de nível de produção. Isso, a longo prazo, reduz o tempo de desenvolvimento e, eventualmente, aumenta sua eficiência.

O Spring Boot também se integra facilmente ao ecossistema do Spring, que inclui Spring JDBC, Spring Data, Spring Security e Spring ORM.

Os desenvolvedores Java também podem conectar o Spring Boot a diferentes bancos de dados, como Oracle, MySQL, PostgreSQL e MongoDB, entre outros.

É claro que configurações flexíveis com configurações XML, Java Beans e transações de banco de dados estão entre outros recursos úteis.

Portanto, agora que você tem uma visão geral básica do Spring Boot, vamos considerar algumas das perguntas e respostas da entrevista sobre o Spring Boot mais frequentes que o ajudarão a se preparar para sua entrevista.

Perguntas e respostas da entrevista Spring Boot

Quais são alguns recursos do Spring Boot?

Alguns desses recursos populares incluem:

  • A CLI do Spring Boot fornece o Groovy para escrever o aplicativo Spring Boot; a longo prazo, o código clichê é evitado.
  • O Spring Boot fornece registro e um recurso de segurança que protege facilmente seu aplicativo contra possíveis ameaças à segurança.
  • Ele fornece configuração automática de componentes relevantes para o seu projeto, evitando assim o risco de arquivos WAR desnecessários.
  • O inicializador inicial estabelece uma estrutura de projeto interna padrão para você. Dessa forma, você não precisa configurar manualmente a estrutura do projeto.
  • O recurso do atuador Spring Boot dá acesso a insights e métricas à medida que o aplicativo é executado.
  • Obviamente, um dos principais recursos do Spring Boot, o Starter Dependency, ajuda a agregar as dependências comumente usadas de um recurso específico.
  11 aplicativos para assistir filmes junto com amigos remotamente

O que são Spring Boot Starters?

Os iniciadores do Spring Boot são descritores de dependência que incluem um conjunto de provedores de gerenciamento de dependência que habilitam as dependências do aplicativo. Eles fornecem a estrutura com resolução de dependência automática. Os starters melhoram o desenvolvimento fácil e rápido.

O que é um atuador no Spring Boot e quais são suas vantagens?

O atuador é um dos recursos do Spring Boot que permite monitorar o que acontece dentro de um aplicativo enquanto ele é executado.

Durante a depuração, por exemplo, você pode usar o atuador para análise de logs, permitindo acesso a recursos como uso de CPU e identificação de beans.

Além disso, o atuador não apenas fornece acesso fácil aos terminais REST prontos para produção, que monitoram e gerenciam informações, mas também recuperam dados da web.

O que é thymeleaf e como usar thymeleaf?

Thymeleaf é o modelo do lado do servidor do Java que cria um layout de modelo natural para aplicativos Web Java Spring e HTML5.

O Spring Boot executará uma configuração automática do thymeleaf usando a dependência spring-boot-starter-thymeleaf no arquivo pom.xml para servir o conteúdo da web dinâmico.

Para permitir que o Spring Boot leia e renderize os modelos thymeleaf ou arquivos HTML, coloque os modelos em src/main/resources/templates.

O Thymeleaf então analisa o arquivo index.html e usa os valores reais que você passa da classe do controlador no lugar dos valores dinâmicos disponíveis no arquivo de índice.

Depois disso, a mensagem é renderizada no navegador da Web assim que o aplicativo Spring Boot é executado.

org.springframework.boot spring-boot-starter-thymeleaf

Descreva o processo de criação de um projeto Spring Boot usando o Spring Initializer.

O Spring Initializr, que é uma ferramenta da Web do Spring, permite criar um projeto Spring Boot usando algumas etapas, fornecendo os detalhes do projeto.

  • Vá até o Spring intializr e preencha os campos de entrada.
  • Clicar no botão Gerar iniciará o download do projeto.
  • Extraia o projeto baixado do arquivo zip e abra-o em seu IDE. No IDE, navegue até Arquivo->Novo->Projeto de fontes existentes->Spring-boot-app e selecione o arquivo pom.xml. Clique no prompt de importação de alterações para que o projeto seja sincronizado. Depois disso, lembre-se de acessar o arquivo application.properties e editar o número server.port para server.port=7000.
  • Agora, execute o aplicativo em src->main->java->com.gfg.Spring.boot.app
  • O que é JPA no Spring Boot?

    Esta é uma especificação em Java que usa o Object-Relation Mapping (ORM) para gerenciar dados relacionais e permite o acesso a dados entre o objeto Java ou a classe Java e o banco de dados relacional do aplicativo.

    A JPA usa a Java Persistent Query Language (JPQL), uma linguagem de consulta orientada a objetos que também é independente de plataforma.

    O JPA permite o processamento de consultas e transações de objetos no banco de dados usando a API do Entity Manager que ele fornece.

    O que é configuração automática no Spring Boot?

    A configuração automática procura automatizar a configuração do aplicativo Spring Boot usando as dependências jar que você adiciona aos aplicativos.

    Dependendo das dependências disponíveis no Classpath do aplicativo, a configuração automática declarará os objetos internos do módulo específico da mola, incluindo JPA e segurança da mola, entre outros.

    O que são as anotações do Spring?

    As anotações do Spring referem-se a metadados que oferecem informações sobre um trecho de programa e adicionam dados suplementares a esse programa. Componentes de código, incluindo classes e métodos, geralmente são associados a anotações.

    As anotações não afetam diretamente a operação do programa ou a ação subsequente do código compilado.
    Sua sintaxe começa com o símbolo ‘@’.

      Como ocultar visualizações de mensagens do Slack na tela de bloqueio

    O Spring Boot fornece seis tipos principais de anotações que incluem:

    • Anotações do Spring Core
    • Anotações de dados do Spring
    • Anotações do Spring Bean
    • Spring Web Anotações
    • Anotações de agendamento de primavera
    • Anotações de inicialização do Spring

    O que significa Spring Data REST?

    Spring Data REST expõe os recursos em RESTful que estão em torno do Spring Data Resources usando código mínimo.

    O exemplo a seguir usa o método POST para solicitar conteúdo usando http://localhost/example como URL e Content-Type: application/json como Header.

    Solicitar conteúdo:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
    }

    Conteúdo da resposta:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
        "_links": {
            "self": {
                "href": "http://localhost:8080/example/1"
            },
            "person": {
                "href": "http://localhost:8080/example/1"
             }
        }
    }

    Trata-se de um conjunto profundo de ferramentas predefinidas cujas propriedades são aplicadas aos respectivos ambientes de desenvolvimento para facilitar o desenvolvimento e economizar tempo de desenvolvimento.

    Sempre que você altera o código no aplicativo Spring Boot, o recurso Spring Boot DevTools é reiniciado automaticamente. Portanto, você evita o trabalho de reiniciar manualmente seu aplicativo toda vez que você altera seu código.

    O que é Spring Data?

    O Spring data procura dar aos desenvolvedores acesso fácil a tecnologias de acesso a dados, como dados relacionais e não relacionais e serviços de dados baseados em nuvem, pois continua a manter as características especiais do armazenamento de dados subjacente.

    Como dizer a uma configuração automática para recuar quando existe um bean?

    Aqui você usará a anotação @ConditionalOnMissingBean, que inclui o atributo name e value da seguinte forma.

    • atributo value armazena o tipo de bean a ser verificado
    • atributo name que nomeia o bean a ser verificado

    Como buscar dados do banco de dados no Spring Boot?

    Podemos acessar dados de um banco de dados MySQL para nosso aplicativo Spring Boot usando as etapas a seguir.

    Etapa 1: Use o comando create DATABASE person para criar o banco de dados no MySQL.

    Passo 2: Dentro do banco de dados, crie uma tabela:

    CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));

    Etapa 3: Agora crie um aplicativo Spring Boot e adicione a ele o JDBC, o MySQL e as dependências da Web necessárias.

    Etapa 4: Configure o banco de dados a partir do arquivo application.properties como abaixo.

    spring.datasource.url=jdbc:mysql://localhost:3306/personDetails
    spring.datasource.username=example123
    spring.datasource.password=example123
    spring.jpa.hibernate.ddl-auto=create-drop

    Etapa 5: Em seguida, vamos lidar com as solicitações na classe do controlador:

    package com.person;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    public class JdbcController {
       @Autowired
       JdbcTemplate jdbc;
       @RequestMapping("/save")
       public String index(){
          jdbc.execute("insert into person (name)values(Trial)");
          return "Name entered Successfully";
       }
    }

    Por fim, execute seu aplicativo enquanto verifica a entrada do banco de dados para ver os dados acessados.

    Por que precisamos de perfis de primavera?

    Os Spring Profiles permitem segregar a configuração de uma aplicação de diferentes partes e aproveitá-las para desenvolvimentos específicos.

    O Spring Profiles também poupa o desenvolvedor da dor de gerenciar configurações externas específicas do ambiente se os Spring Profiles não estiverem disponíveis.

    Além disso, isso dificultaria a sincronização e significaria a necessidade extra de escrever vários componentes semelhantes a fábricas que aproveitariam certas coisas necessárias, dependendo de parâmetros específicos do ambiente.

    Podemos alterar a porta do servidor Tomcat incorporado no Spring boot?

    Sim, nós podemos.

    Isso é feito manipulando o arquivo application.properties para incluir a propriedade server.port e atribuindo a ele uma porta de sua escolha. O Spring Boot carrega automaticamente o arquivo de propriedades do aplicativo e aplica as configurações necessárias ao aplicativo.

    Por exemplo, você pode alterar o número server.port do valor padrão de 8080 para server.port= 8081.

    Como você configura o Log4j para log?

    Com estes poucos passos simples, podemos configurar o Log4j para registro:

  • Primeiro, crie seu projeto Java e clique com o botão direito do mouse no projeto. Navegue até MyEclipse->File->New->Java Project para nomear o projeto e clique em concluir.
  • Em seguida, clique com o botão direito do mouse no nome do projeto Java e selecione Build Path -> Configure Build Path. Esta etapa adicionará o arquivo log4j.
  • Navegue até a biblioteca e clique no botão Add External JARS e selecione o arquivo log4j no menu suspenso que aparece. Em seguida, clique em OK.
  • Crie um novo arquivo java que você chamará de arquivo log4j.properties, clique em concluir e adicione este arquivo ao Classpath.
  • Clique em Advanced no Classpath, selecione a opção Add Folders e lembre-se de clicar em OK.
  • Agora você pode procurar o arquivo log4j.properties, clicar em OK e executar o projeto.
  • Verifique o console para a saída abaixo.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    O que é um contêiner IoC?

    O contêiner IoC (Inversion of Control) é um contêiner principal do Spring que implementa automaticamente a injeção de dependência. Ele instancia a aplicação da classe e é responsável pela configuração dos objetos e montagem das dependências necessárias.

      25 melhores softwares de escrita de e-books para download gratuito

    Ele também gerencia o ciclo de vida do objeto desde sua instanciação até sua destruição.

    O IoC executa essas tarefas usando a configuração de metadados em código Java, XML e anotações Java.

    O contêiner é chamado de Inversão de Controle porque controla os objetos Java e os ciclos de vida desses objetos. Esta é outra tarefa do desenvolvedor.

    Explicar como criar um aplicativo Spring Boot usando o Maven

    Esse processo envolve uma série de etapas.

    Passo 1: Selecione o tipo de projeto.

    Etapa 2: nomeie seu projeto para configurá-lo e clique no botão concluir para criar o projeto.

    Passo 3: Agora, vamos configurar o arquivo pom.xml do projeto Maven para criar um projeto Spring Boot a partir dele.

    arquivo pom.xml:

    <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <groupId>com.javatpoint</groupId>  
      <artifactId>spring-boot-example</artifactId>  
      <version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name>  
    </project>  

    A configuração envolve a adição de um pai ao projeto Maven. Isso declarará o projeto Maven como um projeto filho para o projeto pai.

    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>1.4.2.RELEASE</version>  
    </parent>  

    Etapa 4: Em seguida, adicione a dependência da web, spring-boot-starter-web, ao pom.xml.

    <dependencies>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
    </dependencies>  

    Etapa 5: adicione a versão Java do projeto.

    <properties>  
        <java.version>1.8</java.version>  
    </properties> 

    Etapa 6: Observe que toda vez que você adiciona novas dependências, precisa atualizar o projeto Maven.

    Etapa 7: Torne o projeto Maven executável criando uma classe Java dentro do pacote src/main/java.

    Etapa 8: Em seguida, chame o método de execução estática da classe Spring Application.

    Etapa 9: Por último, execute a classe como um aplicativo Java.

    Quais são as vantagens do Spring Boot sobre o Spring?

    • A capacidade de bootstrapping do Spring Boot para compilar o idioma de origem usando Boot inicializer, uma técnica chamada bootstrapping, permite economia de espaço nos dispositivos dos usuários e também reduz o tempo de carregamento do aplicativo.
    • Ao contrário do Spring, o Spring Boot permite o gerenciamento de dependências após adicionar as dependências de inicialização de mola sem depender do POM pai (modelo de objeto pai) ou do arquivo XML.
    • O Spring Boot também permite que os desenvolvedores usem anotações ou configurações XML sem a necessidade de usar configurações XML.
    • Os desenvolvedores preferem o Spring Boot por seu código padrão reduzido necessário para configurar um aplicativo. Isso ocorre porque o Spring Boot vem com um banco de dados na memória e um servidor Tomcat incorporado, diminuindo o código clichê. O Spring, por outro lado, tem mais código clichê.
    • O Spring Boot não precisa necessariamente de arquivos WAR (recurso de aplicação web) e só pode contar com o JAR (Recurso Java), que possui uma estrutura pequena e mais simples e, portanto, é mais útil para usuários e desenvolvedores.
    • O Spring Boot também incorpora automaticamente servidores como Tomcat e Jetty; portanto, o desenvolvedor não precisa configurar manualmente o servidor como você deveria fazer no Spring.

    O processo de paginação divide os dados em seções para economizar recursos. Ele envolve dois campos, o tamanho da página e o número da página.

    O processo envolve algumas etapas, incluindo:

    Etapa 1: configuração inicial
    Entidade Consisetupn nomearemos Person como a classe de domínio.

    @Entity 
    public class Person {
        @Id
        private long id;
        private String name; 
    }

    Etapa 2: criação do repositório
    Em seguida, use um PersonRepository estende PagingAndSortingRepository para poder obter os métodos findAll(Pageable pageable) e findAll(Sort sort) para paginação e classificação, respectivamente.

    public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {
        List<Product> findAllByPrice(double price, Pageable pageable);
    }

    Etapa 3: etapa de paginação
    A primeira etapa aqui envolve a criação de um objeto PageRequest; passando o número da página e o tamanho da página conforme solicitado que implementa a interface Paginável.

    Pageable firstPageWithTwoElements = PageRequest.of(0,2);
    Pageable secondPageWithThreeElements = PageRequest.of(1,3);

    Em seguida, passe esse objeto PageRequest para o método de repositório como um parâmetro.

    Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements);
    List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements) 

    Por padrão, o método findAll(Pageable pageable) retornará um objeto Page.

    Explicar como registrar uma configuração automática personalizada

    No arquivo META-INF/spring.factories da chave @EnableAutoConfiguration, mencione o nome completo. Esta etapa registra a classe de configuração automática.

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration

    Construir o projeto usando o Maven exigirá que você coloque o arquivo no diretório resources/META-INF.

    O que é bootstrap no Spring Boot?

    Bootstrapping é o processo de execução de lógica no aplicativo Spring Boot na inicialização.
    O Boot initializr compila o idioma de origem no Spring Boot. Esse processo economiza espaço no dispositivo e também reduz o tempo de carregamento do aplicativo.

    Palavras finais 👨‍💻

    Bem, este artigo cobriu algumas perguntas do Spring Boot que os entrevistadores provavelmente farão durante sua entrevista e as respostas para ajudá-lo a aceitá-lo com confiança. Esperamos que você consiga aquele emprego dos sonhos!

    Você também pode querer aprender algumas dicas relevantes de perguntas feitas durante uma entrevista Java.

    Boa sorte!🙂