15 perguntas obrigatórias da entrevista Spring MVC

Publicados: 2018-03-25

Spring tornou-se um dos frameworks Java mais utilizados para o desenvolvimento de aplicações web. Todos os novos aplicativos Java são, por padrão, usando as estruturas Spring core e Spring MVC. Graças à sua crescente popularidade, recrutadores de todo o mundo estão procurando candidatos com a estrutura Spring. Se você está aparecendo para uma entrevista para uma função de desenvolvedor Java, o Spring MVC é uma das primeiras coisas que você deve aprimorar seu conhecimento sobre as perguntas da entrevista do framework Spring – independentemente de você ser um novato ou alguém com experiência.

Afinal, o framework Spring MVC é o framework Java mais comumente usado, e você é obrigado a receber perguntas sobre o mesmo, em qualquer entrevista Java (ou qualquer entrevista relacionada) que você participar. Se você não sabia, Spring MVC é uma estrutura robusta baseada em Java que ajuda a construir aplicativos da web. Como o nome sugere, ele usa uma arquitetura MVC – Model, View, Controller. O Spring MVC fornece uma maneira elegante de usar o Spring com o framework MVC. Lançado em 2002, o framework Spring é um framework de código aberto, o que significa que desenvolvedores de todo o mundo podem contribuir para o desenvolvimento e lançamentos adicionais do framework.

Aprenda a criar aplicativos como Swiggy, Quora, IMDB e muito mais

Isso também significa que existe uma comunidade sempre ativa de desenvolvedores para ajudá-lo com suas dúvidas. Ser de código aberto também aumenta a infinidade de benefícios que a estrutura Spring oferece. Especialmente se você está começando sua carreira em Java, você precisa de orientação, e a comunidade diversificada de desenvolvedores Java garante que você não perca nenhuma orientação quando se trata de trabalhar com Spring MVC.

Com tantos benefícios a oferecer, não deve haver um pingo de dúvida sobre por que o Spring MVC é o tópico favorito de uma entrevista para questioná-lo.

Neste artigo, falaremos sobre 15 perguntas obrigatórias do Spring MVC que você pode esperar encontrar em qualquer entrevista para a qual se sentar.

1. O que é o framework Spring?

Spring é uma estrutura de código aberto que foi criada para simplificar o desenvolvimento de aplicativos. Tem uma estrutura em camadas que permite ao desenvolvedor ser seletivo sobre os componentes que usa. Ele tem três componentes principais – Spring Core, Spring AOP e Spring MVC.

Além disso, você pode falar sobre sua experiência com o Spring, se houver. Isso vai adicionar muito peso à sua resposta.

Por que as empresas estão procurando contratar desenvolvedores de pilha completa

2. Quais são as principais características do framework Spring?

O framework Spring oferece muitos recursos para facilitar a vida do desenvolvedor. Alguns deles são:

  • Leve: O Spring é extremamente leve, a versão básica tem cerca de 1 MB, com sobrecarga de processamento insignificante.
  • Inversão de Controle (IoC): Injeção de Dependência ou Inversão de Controle é um dos recursos mais importantes do Spring. Usando IoC, os desenvolvedores não precisam criar um ambiente completo para o objeto e suas dependências; eles podem simplesmente criar e testar o objeto que estão manipulando em um determinado momento. As dependências de objetos serão incluídas ou chamadas quando surgir a necessidade.
  • Programação Orientada a Aspectos: O Spring suporta Programação Orientada a Aspectos. AOP isola funções secundárias da lógica de negócios do programador. Isso não apenas fornece modularidade, mas também torna o código sustentável.
  • Arquitetura MVC: Spring vem com um framework MVC para aplicações web. Essa estrutura é altamente configurável usando várias tecnologias como JSP, Tiles, iText e POI.
  • Tratamento de exceções JDBC: O Spring vem com uma camada de abstração JDBC predefinida que simplifica o processo geral de tratamento de exceções.

3. Explique um pouco mais sobre injeção de dependência.

A Inversão de Controle ou Injeção de Dependência visa simplificar o processo de criação de objetos seguindo um conceito simples – não crie objetos, apenas descreva como eles devem ser criados. Usando IoC, os objetos recebem suas dependências em tempo de construção por uma entidade externa que é responsável por coordenar cada objeto no sistema. Em essência, estamos injetando dependências em objetos usando IOC ou injeção de dependência.

4. Explique os diferentes tipos de injeções de dependência no Spring? Quando usar qual?

O Spring fornece aos desenvolvedores os dois tipos de injeções de dependência a seguir:

  • DI baseada em construtor: A DI baseada em construtor é realizada passando vários argumentos (cada um dos quais representa uma dependência de outra classe) para o construtor de uma classe. Simplesmente, as dependências são fornecidas na forma de parâmetros do construtor.
  • DI baseado em setter: Quando você está trabalhando com um construtor sem argumentos, você definirá valores passando argumentos por meio da função setter para instanciar o bean em consideração, isso é chamado de injeção de dependência baseada em setter.

Quando você usará qual deles, se resume às suas necessidades. No entanto, é recomendável usar DI baseada em Setter para dependências opcionais e DI baseada em Constructor para dependências obrigatórias.
Entrevista com Farooq Adam, cofundador, Fynd

5. O que é o framework Spring MVC?

O Spring MVC é um dos principais componentes do framework Spring. Ele vem com componentes e elementos prontos para uso que ajudam os desenvolvedores a criar aplicativos da Web flexíveis e robustos. Como o nome sugere, a arquitetura MVC separa os diferentes aspectos do aplicativo – lógica de entrada, lógica de negócios e lógica da interface do usuário. Ele também fornece um acoplamento frouxo entre o M, V e C da aplicação.

6. Quais são alguns benefícios do framework Spring MVC sobre outros frameworks MVC?

O framework Spring MVC tem alguns benefícios claros sobre outros frameworks. Alguns dos benefícios são:

    • Separação clara de funções – Existe um objeto especializado para cada função, proporcionando assim uma separação clara de funções.
    • Código comercial reutilizável – Com o Spring MVC, você não precisa duplicar seu código. Você pode usar seus objetos existentes como comandos em vez de espelhá-los para estender uma classe base de estrutura específica.
    • Vinculação e validação personalizáveis
    • Resolução de tema e localidade personalizável
    • Mapeamento de manipulador personalizável e resolução de exibição
  • A partir do Spring 2.0, o framework vem com uma biblioteca de tags de formulário JSP que facilita muito a escrita de formulários em páginas JSP.

7. O que é DispatcherServlet?

A estrutura Spring MVC é orientada a solicitações e é projetada em torno de um Servlet central que lida com todas as solicitações e respostas HTTP. O DispatcherServlet , no entanto, faz muito mais do que apenas isso. Ele se integra perfeitamente ao contêiner IoC e permite que você use cada recurso do Spring.
Ao receber uma requisição HTTP, o DispatcherServlet consulta o HandlerMapping (estes são os arquivos de configuração) para chamar o Controller apropriado. Em seguida, o controlador chama os métodos de serviço apropriados para definir os dados do modelo. Ele também retorna o nome da visualização para DispatcherServlet. DispatcherServlet, com a ajuda de ViewResolver, pega a visão definida para o pedido. Uma vez que a visualização é finalizada, o DispatcherServlet passa os dados do Modelo para a Visualização – onde é finalmente renderizado no navegador.
O que é desenvolvimento orientado a testes: um guia para iniciantes

8. Qual é a classe do front controller do Spring MVC?

Um controlador frontal é um controlador que trata de todas as solicitações de um aplicativo da Web. Quando se trata de Spring MVC, DispatcherServlet é o controlador frontal. Quando uma solicitação da web é enviada para um aplicativo Spring MVC, o DIspatcherServlet cuida de tudo. Primeiro, ele aceita o pedido. Em seguida, ele organiza os diferentes componentes, como manipuladores de solicitações, controladores, resolvedores de exibição e outros – todos necessários para lidar com a solicitação. E, finalmente, renderiza o conteúdo no navegador.

9. O que é um padrão Viewresolver e como ele funciona no MVC?

O View Resolver é um padrão J2EE que permite que os aplicativos escolham dinamicamente a tecnologia para renderizar os dados no navegador (View). Qualquer tecnologia como HTML, JSP, Tapestry, XSLT, JSF ou qualquer outra tecnologia pode ser usada para View. O padrão View Resolver contém o mapeamento de diferentes visualizações. O Controller retorna o nome da View que é então passado para o View Resolver para selecionar a tecnologia apropriada.

10. Como o Spring MVC fornece suporte à validação?

O Spring suporta principalmente dois tipos de validações:

  • Usando anotações JSR-303 e qualquer implementação de referência, por exemplo, Hibernate Validator ou
  • Implementando a interface org.springframework.validation.Validator.

11. Um usuário recebe um erro de validação em outros campos ao marcar uma caixa de seleção, após o que ele a desmarca. Qual seria o status de seleção atual no objeto de comando do Spring MVC? Como você vai corrigir esse problema?

Essa é uma das perguntas mais complicadas de responder se você não estiver ciente do comportamento do HTTP Post no Spring MVC.
Durante o HTTP Post, se você desmarcar a caixa de seleção, o HTTP não incluirá um parâmetro de solicitação para a caixa de seleção – o que significa que a seleção atualizada não será selecionada. Para corrigir isso, você pode usar o campo de formulário oculto que começa com '_'.
Como ter sucesso em seu primeiro trabalho de desenvolvimento de software

12. Como você comparará a estrutura MVC com a arquitetura de três camadas?

Uma arquitetura de três camadas é um estilo de arquitetura, enquanto o MVC é um padrão de design.
Arquitetura de 3 camadas com parte mvc
Dito isto, em aplicações maiores, o MVC forma a camada de apresentação de uma arquitetura de três camadas. O Model, View e Controller estão preocupados apenas com a apresentação – eles usam a camada intermediária para preencher seus modelos.

13. Como devemos usar JDBC no Spring para otimizar o desempenho?

O Spring fornece uma classe de modelo chamada JDBCTemplate . O uso de JDBC com este modelo oferece melhor desempenho a vários distribuidores.

14. O que você quer dizer com um “Bean” no contexto do framework Spring?

Qualquer classe inicializada pelo contêiner IoC é conhecida como bean no Spring. O ciclo de vida de um Spring Bean é gerenciado pelo Spring IoC Container.

15. O que é um “escopo” em referência ao Spring Beans?

O Spring Beans vem com os cinco escopos a seguir:

    • Protótipo : Sempre que há uma solicitação para um bean, um protótipo separado é criado a cada vez.
    • Request : É como o escopo anterior, mas apenas para aplicativos baseados na web. Para cada solicitação HTTP, o Spring cria uma nova instância de bean.
    • Singleton : Há apenas um bean criado para cada contêiner e ele atua como o escopo padrão desse bean. Em todas essas instâncias, os beans não podem usar uma variável de instância compartilhada, pois isso pode levar à inconsistência de dados.
    • Sessão : Um bean é criado para cada sessão HTTP
    • Global-session : A sessão global é criada para aplicativos Portlet.

O framework Spring é extensível, ou seja, você também pode criar seu próprio escopo. O atributo “scope” do elemento bean é usado para definir o escopo.
Como se tornar um desenvolvedor fullstack

Empacotando…

Isso foi tudo sobre as perguntas e respostas obrigatórias da entrevista do Spring que giram em torno da estrutura do Spring – e do Spring MVC, para ser mais preciso. Se você é um desenvolvedor Java querendo começar com o Spring, não poderia haver um momento melhor! Leia mais se você estiver procurando por perguntas de entrevista em Java.

Gaste algum do seu precioso tempo para colocar as mãos nas perguntas da entrevista do Java Spring e você estará pronto para ir. As organizações estão à procura de desenvolvedores que tenham um forte comando sobre essa estrutura - graças aos recursos que ela oferece.

Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Torne-se um Desenvolvedor Full Stack

Diploma PG UpGrad e IIIT-Bangalore em Desenvolvimento de Software
Candidate-se ao Programa PG Executivo em Desenvolvimento de Software do IIITB