25 top spring mvc interview questions
Perguntas mais populares da entrevista Spring MVC com respostas para candidatos iniciantes e experientes:
Spring é uma estrutura poderosa usada em todo o mundo por desenvolvedores Java para desenvolver aplicativos da Web Java Enterprise.
Spring MVC significa Model View e Controller. Assim como outros Struts de framework, Spring também é baseado em tecnologias J2EE que são JSP e Servlet junto com a implementação de modelo de design, Visualização e Controlador.
Aqui, exploraremos as perguntas mais comuns da entrevista do Spring MVC com exemplos.
O que você aprenderá:
melhores sites de anime para assistir anime dublado
Arquitetura Spring MVC
A arquitetura MVC tem muitas classes e componentes embutidos que estão sempre disponíveis para os desenvolvedores desenvolverem um aplicativo forte e fracamente acoplado.
Fracamente acoplado significa que não deve haver nenhuma dependência embutida em código entre as classes. Isso, por sua vez, torna a tarefa bastante complexa quando se trata de mudança de código ou funcionalidade do aplicativo.
A arquitetura MVC tem suas próprias funções independentes. A camada de modelo inclui todas as classes POJO e ajuda no encapsulamento de dados. A camada de visualização é utilizada para renderizar os dados presentes na camada do modelo e continua gerando saída no formato HTML para o cliente que normalmente a recebe em um navegador da web.
Finalmente, o controlador é responsável pelo processamento da solicitação e construção do modelo correto e, portanto, envia a resposta para a camada de visualização ou apresentação.
Neste artigo, você examinará todos os tópicos importantes do Spring MVC, conforme mencionado abaixo:
- O princípio de funcionamento do Spring MVC
- Arquitetura de primavera
- O conceito de servlet despachante
- Mapeamento de manipulador
- Controlador
- Ver resolver
- Diferentes camadas de Spring MVC
- Núcleo Spring, vantagens de usar Spring MVC
- Módulos Spring
- AOP
- Linguagem de expressão
- Camada de acesso a dados
- Módulo web
- Aspects
- Teste, etc
- Inversão de controle e injeção de dependência, sobre arquivos pom.xml.
Vamos dar uma olhada nos prós e contras do Spring MVC !!
Prós do Spring MVC
Listados abaixo estão os vários Prós do Spring MVC:
- Por ser muito pequeno, oferece alto desempenho com menos problemas.
- Possui alta produtividade que por sua vez aumenta o desenvolvimento.
- É altamente seguro porque usa Spring SPI e é usado principalmente por todos os bancos para seus aplicativos da web.
- Podemos desenvolver aplicações modulares, uma vez que suporta Model View e arquitetura de controlador.
- Ele oferece suporte a Test Driven Development, o que é muito bom.
- Até agora, ele é mais adequado para aplicativos da Web de desenvolvimento ágil em todo o mundo por desenvolvedores.
- Ele tem um recurso de separação de responsabilidades e funções que simplifica as tarefas.
- Ele fornece suporte para serviço RESTful.
- Suporta temas, internacionalização, outras estruturas de banco de dados, JPA, múltiplas visualizações e suporte da comunidade.
Contras do Spring MVC
A seguir estão alguns dos contras do Spring MVC:
- A curva de aprendizado do framework Spring e sua arquitetura MVC é um pouco complexa para os desenvolvedores, pois tem poucos conceitos complexos.
- O Spring tem uma natureza mutante, como os baseados em XML ou em anotações e que, por sua vez, às vezes se torna difícil de acompanhar.
- Muito menos especificações no Spring MVC.
- Se o arquivo jar não estiver disponível, o aplicativo não será executado corretamente.
- Problemas de configuração muito grandes, muitos controladores para lidar, muitos resolvedores de visualização para controlar, etc.
Principais perguntas da entrevista do Spring MVC
Listadas abaixo estão as perguntas mais importantes da entrevista para Spring MVC. Tente entender o conceito de cada pergunta, de forma que seja muito útil na explicação ao entrevistador. Sempre tente dar ou correlacionar com exemplos de aplicativos em tempo real. Eles também são úteis para profissionais experientes.
P # 1) O que é Spring Framework e por que é tão popular?
Responda: Spring Framework é uma estrutura leve usada para desenvolver aplicativos da web Java fracamente acoplados.
Ele fornece um contêiner embutido, injeção de dependência e arquitetura MVC. É muito popular, pois permite desacoplamento, reutilização e fornece padrões de design como singleton, fábrica para reduzir o comprimento do código, etc, e também remove conexões fracas e tem integração poderosa com terceiros.
P # 2) O que é Spring MVC?
Responda: Spring MVC segue o conceito de Model, View e Controller.
É uma instância de um controlador que é compartilhado sozinho e também ajuda a lidar com várias solicitações que são executadas em containers de Inversão de Controle, como interceptores e controladores. O padrão Spring MVC ajuda a separar os aspectos do aplicativo que incluem lógica de entrada, negócios e apresentação.
P # 3) Quais são os principais recursos do Spring Framework?
Responda:
Os principais recursos do Spring MVC são:
- É capaz de configurar efetivamente o framework e as classes como beans. Ele também divide as funções e responsabilidades funcionais separadamente.
- Permite a definição de um método de controle ilimitado, o que torna a aplicação altamente ajustável e flexível.
- Ele fornece uma boa customização para mapeamento de manipulador, ligação, resolução de visualização e validações.
- Isso ajuda a transferir o modelo usando um mapa. Ele também oferece suporte para velocidade, JSTL, JSP, e o usuário pode personalizar o local e a resolução do tema.
- O Spring tem sua própria biblioteca de tags, o que o torna mais flexível e suporta ligação de dados, temas, beans com ciclo de vida até a solicitação HTTP.
Q # 4) Explique o conceito do Servlet Dispatcher.
Responda: O Servlet Dispatcher é o servlet central principal que trata de todas as Solicitações e Respostas HTTP recebidas. Possui integração com Spring IOC, e assim permite utilizar todas as funcionalidades do Spring.
Depois que o servlet do despachante recebe uma solicitação, ele a encaminha para o mapeamento do manipulador para obter um controlador apropriado e, agora, o controlador chamará o método de serviço correto e novamente o enviará de volta para o servlet do despachante.
Novamente, o servlet envia a solicitação ao resolvedor de visualização para obter a visualização necessária e, em seguida, envia a resposta ao navegador do cliente.
Exemplo de código para mostrar o uso do servlet do despachante:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp / P # 5) Qual é o uso de ContextLoaderListner no Spring MVC?
Responda: Ele é usado para ler e analisar o arquivo de configuração Spring e processar o carregamento de beans nesse arquivo de configuração.
Exemplo de código:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1 Q # 6) Explique a classe de controlador frontal do Spring MVC.
Responda: O Front Controller é responsável por lidar com toda a solicitação de entrada de um aplicativo. No Spring MVC, o servlet dispatcher atua como um controlador frontal e lida com todas as solicitações de entrada.
P # 7) Explique a função da anotação @Autowired.
Responda: A anotação @Autowired é responsável por injetar um bean por seu tipo junto com os campos e métodos. Assim, ajudando o framework Spring na resolução e injeção de beans colaborativos em nosso bean.
Exemplo:
package com.SoftwareTestingHelp; import org.Springframework.beans.factory.annotation.Autowired; public class WordEditor { private SpellChecker sp; @Autowired public void setSp( SpellChecker sp ){ this.sp = sp; } public SpellChecker getSp( ) { return sp; } public void spellCheck() { sp.checkSpelling(); } }Q # 8) Qual é a função da anotação de Atributo do Modelo?
Responda: A anotação @ModelAttribute desempenha um papel vital no framework Spring MVC. Ele é responsável pelo parâmetro do método de ligação com o respectivo atributo de modelo e depois o mostra na página de apresentação.
Também depende do que o desenvolvedor está usando na anotação de atributo do modelo . Se for usado no nível do método, indica que o método é responsável por adicionar atributos. Quando usado como parâmetro, indica que o valor do parâmetro deve ser recuperado da camada do modelo.
Q # 9) Explique o conceito e a função da variável de caminho.
Responda: O @PathVariable é uma anotação usada como um parâmetro no método do manipulador para extrair o valor do modelo de URI.
Exemplo:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }P # 10) Qual é a função da anotação @RequestBody?
Responda: A anotação @RequestBody é responsável por vincular a solicitação do corpo HTTP a um objeto de domínio. A solicitação HTTP recebida é desserializada automaticamente para o objeto Java pelo Spring com a ajuda dos conversores de mensagem HTTP.
Q # 11) Qual é a função da anotação @ResponseBody?
Responda: Quando a anotação @ResponseBody é usada no controlador MVC, ela indica que o desenvolvedor precisa escrever um tipo de retorno do método declarado diretamente no corpo da resposta HTTP. Aqui, a invocação do modelo não é necessária e o nome da visualização não é interpretado pelo Spring.
P # 12) Por que precisamos do View Resolver no Spring MVC e o que é um view resolvedor interno no Spring?
Responda: View Resolver é responsável pela renderização de modelos no navegador da web. Não requer nenhuma tecnologia de visualização específica como JSP, XML e Velocity, etc.
O “InternalResourceViewResolver” é o resolvedor interno de visualizações no Spring MVC.
Existem alguns resolvedores de visão importantes no Spring MVC, conforme mencionado abaixo:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver etc.
P # 13) Explique o princípio de funcionamento do Spring MVC Framework.
Responda:
O diagrama abaixo ajudará na compreensão do fluxo:

Como sabemos, é baseado no conceito de Model, View e Controller. O Dispatcher Servlet recebe a solicitação HTTP dependendo do mapeamento do servlet feito no web.xml.
Depois que o pedido é recebido pelo Dispatcher Servlet, ele envia o mesmo pedido ao mapeamento do manipulador para obter a classe do controlador necessária. O mapeamento do manipulador é mencionado no arquivo de configuração do Spring.
Novamente, a solicitação é enviada ao Controlador e o controlador processa a solicitação e o método e envia de volta o objeto de visualização do modelo necessário para o servlet do despachante.
Agora, a solicitação é enviada ao resolvedor de visualização por um servlet para obter a apresentação da página de visualização.
Por último, o Dispatcher Servlet passa o modelo para a página de apresentação e o mesmo é renderizado para um navegador do cliente.
P # 14) Qual é o propósito de usar BindingResults?
Responda: BindingResults é uma das interfaces do Spring que vem no pacote org. Springframework .validação e é usado para representar os resultados da ligação.
Ele desempenha um papel útil na detecção de erros nos formulários enviados. Possui um processo de invocação simples e fácil. O desenvolvedor deve se lembrar de colocar o resultado da vinculação como parâmetro logo após a validação do objeto.
Sintaxe:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }Aqui, o framework Spring entenderá lendo a anotação @Valid e tentará encontrar seu validador.
P # 15) Explique a arquitetura do Modelo 1 e do Modelo 2 do Spring Framework.
Responda: Esses são os dois modelos de design importantes para o desenvolvimento de aplicativos da web.
Modelo 1:
Aqui, a solicitação de entrada é tratada pelo servlet ou um JSP. O servlet ou página JSP é responsável por tratar, processar a solicitação, controlar a lógica do negócio, validar os dados e por último gerar a resposta.
É simples e tem uma arquitetura fácil e é mais preferido por indústrias de pequena escala para desenvolver aplicativos simples.

Modelo 2:
melhor programa para abrir arquivos xml
É um modelo de design importante e é baseado no conceito de Model View Controller. É capaz de separar a apresentação e a seção lógica que manipula o código.

Este modelo é robusto, confiável e evita duplicidade. É bom para construir aplicações grandes e complexas.
P # 16) Explique a função do interceptor Spring MVC junto com seu uso.
Responda: Os interceptadores desempenham um papel útil no Spring MVC. Eles são usados para interceptar a solicitação do cliente, processar a solicitação em momentos diferentes, como antes de lidar com a solicitação, após lidar com a solicitação e após a conclusão da parte da apresentação, ou seja, visualizar a página, etc.
Ele também é usado para questões transversais e reduz a repetição do manipulador de código como uma modificação de parâmetros globais no modelo posteriormente, registro, etc.
Q # 17) É permitido usar vários arquivos de configuração do Spring no Spring MVC?
Responda: Sim, o Spring permite ter vários arquivos de configuração em um aplicativo.
Existem basicamente duas maneiras de conseguir isso e essas maneiras são mencionadas abaixo:
(i) O desenvolvedor deve declarar todos os arquivos no web.xml usando o parâmetro:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring / (ii) O desenvolvedor pode importar arquivos para a configuração existente.
Q # 18) Explique as funções das seguintes anotações: @Component, @Controller, @Repository, @Service.
Responda: Estas são as anotações importantes no Spring MVC. Vamos dar uma olhada neles.
@Componente: Essa anotação é responsável por converter uma classe java em bean para que ela possa ser reconhecida pelo Spring e usada no contexto do aplicativo.
Sintaxe:
@Component public class StudentDAOImpl implements StudentDAO { ... }@Repositório: Essa anotação tem o mesmo uso que @Component, mas, adicionalmente, também considera as exceções não verificadas que podem ser usadas no Spring.
@Serviço: Essa anotação também converte a classe java em bean, mas é melhor usar a anotação @service do que @component, pois ela fornece especificações melhores em um aplicativo em tempo real.
@Controlador: Se quisermos fazer qualquer classe como um controlador, precisamos especificar esta anotação.
P # 19) Qual é a função do resolvedor multipartes e quando ele é usado?
Responda: O Multipart Resolver é responsável por enviar o arquivo em um aplicativo da web. Duas implementações para ele são commonsMultipartResolver e StandardServletMultipartResolver.
Q # 20) Como Spring MVC fornece suporte para validação?
Responda: Spring fornece suporte de validação de duas maneiras - ou seja, principalmente usando a anotação JSR 303 e a interface do Validador.
P # 21) Como a localização é alcançada nos aplicativos da web Spring MVC?
Responda: Spring MVC é configurado com LocaleResolver para oferecer suporte à internacionalização e localização. Para tornar isso possível, alguns grãos precisam ser registrados conforme mencionado abaixo.
SessionLocaleResolver - Leva a ajuda dos atributos já definidos na sessão do usuário para resolver locales.
Sintaxe:
LocaleChangeInterceptor - É útil quando há um parâmetro presente na solicitação de entrada.
Sintaxe:
P # 22) Explique o conceito de contexto de aplicativo raiz no Spring MVC junto com seu processo de carregamento.
Responda: ContextLoaderListner é conhecido como o contexto do aplicativo raiz no Spring MVC e é usado pelo aplicativo completo.
É um ouvinte que ajuda o Spring MVC a inicializar. É usado para carregar e criar o applicationContext, para evitar a escrita de código explícito. O Spring bean é definido no contexto do aplicativo.

Geralmente, dispatcherServlet é usado para especificar os servlets no Spring MVC.
P # 23) Qual é a função de web.xml no Spring MVC e onde ele está localizado?
Responda: Em web.xml, configuramos o ContextLoaderListner. Quando implementamos o aplicativo, uma instância é criada pelo contêiner Servlet para ContextLoaderListner e, em seguida, leva ao carregamento do webApplicationContext.
Q # 24) Descreva alguns tipos de retorno do método do controlador.
Responda: Alguns dos tipos de retorno importantes dos métodos do controlador incluem String, void, view, ModelAndView, Model, Map, HttpHeaders, etc.
P # 25) Com base em que uma vista é escolhida na fase de renderização?
Responda: O ViewResolver na arquitetura MVC é responsável por escolher a visualização necessária.
Quando o controlador envia a resposta ao servlet do despachante, ele envia a solicitação ao resolvedor de visualização para obter a página de visualização correta, que pode ser enviada a um navegador da Web do cliente para apresentação.
P # 26) Qual é a principal diferença entre a anotação @Requestparam e @PathVariable?
Responda: Essas anotações são usadas para buscar informações e dados de um URL.
Mas, a principal diferença entre eles é que @Requestparam é usado apenas para buscar parâmetros de consulta e @PathVariable é usado para buscar a URL completa.
P # 27) Explique o conceito de Programação Orientada a Aspectos?
Responda: AOP é uma parte importante da Arquitetura Spring MVC. O AOP é usado para interesses transversais e também para aplicativos, validação de dados, registro de módulo, gerenciamento de transação, autenticação e objetos.
Há muitas partes da Programação Orientada a Aspectos. Eles são mencionados abaixo:
- Aspecto: A Aspect é responsável por questões transversais, como gerenciamento de transações, etc.
- Conselho: É basicamente uma ação e um método que são executados e também são usados para um ponto de junção especificado.
- Pointcut: É responsável pela execução de conselhos em termos de expressões regulares.
- Ponto Comum: É um ponto no aplicativo para processos como tratamento de exceções, execução do método, alteração dos valores das variáveis, etc.
- Argumentos de Conselho : Esses argumentos são usados para passar métodos.
Conclusão
Espero que você tenha uma visão geral completa da arquitetura Spring MVC com este artigo.
Aqui, cobrimos o fluxo completo de ponta a ponta do fluxo Spring MVC, Por que precisamos do Spring MVC? Quais são os diferentes módulos da arquitetura MVC? Características do Spring MVC e servlet dispatcher, o conceito de front controller, Listeners e sua função, diferentes tipos de anotação como @Autowired, @Controller, @RequestBody, etc.
Também aprendemos mais sobre o conceito do View Resolver, o processo AOP e os diferentes tipos de controlador junto com seus usos. Localização e interceptores, arquitetura diferente do framework Spring e o conceito do resultado de ligação junto com seus usos.
Nós descobrimos o que é um container Spring e seu uso no Spring MVC? Uso de arquivos de configuração no Spring MVC, responsabilidades e importância da variável de caminho. Quase todas as perguntas importantes e mais esperadas da entrevista do Spring MVC são explicadas neste artigo.
No entanto, é sempre aconselhável explicar com exemplos de código no aplicativo em tempo real para satisfazer a expectativa do entrevistador. Todos os códigos necessários para cada conceito são abordados aqui para sua fácil compreensão.
Desejamos-lhe tudo de melhor!
Leitura recomendada
- Perguntas e respostas da entrevista
- 25 melhores perguntas e respostas da entrevista de teste do Agile
- Mais de 25 perguntas e respostas mais populares da entrevista ADO.NET
- Algumas perguntas e respostas complicadas de testes manuais
- Perguntas e respostas da entrevista de teste de ETL
- Perguntas e respostas de teste de software (parte 1)
- Mais de 40 perguntas e respostas populares da entrevista com analistas de controle de qualidade (2021 LIST)
- 25 principais perguntas e respostas da entrevista de teste funcional