25 top spring mvc interview questions
엔트리 레벨 및 경험 많은 응시자를위한 답변이 포함 된 가장 인기있는 봄 MVC 인터뷰 질문 :
Spring은 Java 개발자가 Java Enterprise 웹 애플리케이션을 개발하기 위해 전 세계적으로 사용하는 강력한 프레임 워크입니다.
Spring MVC는 Model View와 Controller를 의미합니다. 다른 프레임 워크 Struts와 마찬가지로 Spring은 디자인 패턴 Model, View 및 Controller의 구현과 함께 JSP 및 Servlet 인 J2EE 기술을 기반으로합니다.
여기에서는 가장 자주 묻는 Spring MVC 인터뷰 질문을 예제와 함께 탐색합니다.
학습 내용 :
컴퓨터 소프트웨어의 오류는 무엇입니까?
Spring MVC 아키텍처
MVC 아키텍처에는 개발자가 강력하고 느슨하게 결합 된 애플리케이션을 개발하는 데 항상 사용할 수있는 많은 내장 클래스와 구성 요소가 있습니다.
느슨하게 결합 된 것은 클래스간에 하드 코딩 된 종속성이 없어야 함을 의미합니다. 결과적으로 애플리케이션의 코드 또는 기능을 변경할 때 작업이 매우 복잡해집니다.
MVC 아키텍처에는 자체 독립 기능이 있습니다. 모델 계층은 모든 POJO 클래스를 포함하며 데이터 캡슐화를 지원합니다. 뷰 레이어는 모델 레이어에있는 데이터를 렌더링하는 데 사용되며 일반적으로 웹 브라우저에서 수신하는 클라이언트를 위해 HTML 형식으로 출력을 계속 생성합니다.
마지막으로 컨트롤러는 요청 처리 및 올바른 모델 구축을 담당하며 이에 따라 응답을 뷰 또는 프레젠테이션 계층으로 보냅니다.
이 기사에서는 아래에 언급 된대로 Spring MVC의 모든 중요한 주제를 다룰 것입니다.
- Spring MVC의 작동 원리
- 봄 건축
- 디스패처 서블릿의 개념
- 핸들러 매핑
- 제어 장치
- 해결보기
- Spring MVC의 다양한 계층
- Spring Core, Spring MVC 사용의 장점
- 스프링 모듈
- AOP
- 표현 언어
- 데이터 액세스 계층
- 웹 모듈
- 상들
- 테스트 등
- pom.xml 파일에 대한 제어 역전 및 종속성 주입.
Spring MVC의 장점과 단점을 살펴 보자 !!
Spring MVC의 장점
다음은 Spring MVC의 다양한 장점입니다.
- 매우 작기 때문에 문제가 적은 고성능을 제공합니다.
- 생산성이 높아 개발이 증가합니다.
- Spring SPI를 사용하므로 매우 안전하며 대부분 웹 애플리케이션을 위해 모든 은행에서 사용됩니다.
- Model View 및 컨트롤러 아키텍처를 지원하므로 모듈 식 애플리케이션을 개발할 수 있습니다.
- 그것은 너무 좋은 완전한 테스트 주도 개발을 지원합니다.
- 지금까지 전 세계 개발자가 애자일 개발 웹 애플리케이션에 가장 적합했습니다.
- 작업을 단순화하는 책임 및 역할 분리 기능이 있습니다.
- RESTful 서비스를 지원합니다.
- 테마, 국제화, 기타 데이터베이스 프레임 워크, JPA, 다중보기 및 커뮤니티 지원을 지원합니다.
Spring MVC의 단점
다음은 Spring MVC의 몇 가지 단점입니다.
- Spring 프레임 워크와 MVC 아키텍처의 학습 곡선은 복잡한 개념이 거의 없기 때문에 개발자에게는 약간 복잡합니다.
- Spring은 XML 기반 또는 어노테이션 기반과 같은 변화하는 특성을 가지고 있으며 때때로 후속 조치가 어려워집니다.
- Spring MVC의 사양이 매우 적습니다.
- jar 파일을 사용할 수 없으면 응용 프로그램이 제대로 실행되지 않습니다.
- 매우 큰 구성 문제, 처리 할 많은 컨트롤러, 제어 할 많은 뷰 리졸버 등
봄 MVC 인터뷰 질문
다음은 Spring MVC에 대한 가장 중요한 인터뷰 질문입니다. 각 질문의 개념을 파악하여 면접관에게 설명하는 데 매우 유용 할 것입니다. 항상 실시간 응용 프로그램의 예를 제공하거나 연관 시키십시오. 이는 숙련 된 전문가에게도 도움이됩니다.
Q # 1) Spring Framework는 무엇이며 왜 그렇게 인기가 있습니까?
대답: Spring Framework는 느슨하게 결합 된 Java 웹 애플리케이션을 개발하는 데 사용되는 경량 프레임 워크입니다.
내장 컨테이너, 종속성 주입 및 MVC 아키텍처를 제공합니다. 디커플링, 재사용이 가능하고 싱글 톤, 팩토리 같은 디자인 패턴을 제공하여 코드 길이를 줄이고 약한 연결을 제거하고 타사와의 강력한 통합을 제공하므로 매우 인기가 있습니다.
Q # 2) Spring MVC 란?
대답: Spring MVC는 Model, View, Controller의 개념을 따릅니다.
단독으로 공유되는 컨트롤러의 인스턴스이며 인터셉터 및 컨트롤러와 같은 Inversion of Control 컨테이너에서 실행되는 여러 요청을 처리하는 데 도움이됩니다. Spring MVC 패턴은 입력, 비즈니스 및 프리젠 테이션 로직을 포함하는 애플리케이션의 측면을 분리하는 데 도움이됩니다.
Q # 3) Spring Framework의 핵심 기능은 무엇입니까?
대답:
Spring MVC의 핵심 기능은 다음과 같습니다.
- 프레임 워크와 클래스를 Bean으로 효과적으로 구성 할 수 있습니다. 또한 기능적 역할과 책임을 별도로 나눕니다.
- 응용 프로그램을 매우 조정 가능하고 유연하게 만드는 무제한 컨트롤러 방법을 정의 할 수 있습니다.
- 처리기 매핑, 바인딩,보기 확인 및 유효성 검사를위한 좋은 사용자 지정을 제공합니다.
- 맵을 사용하여 모델을 전송하는 데 도움이됩니다. 또한 속도, JSTL, JSP에 대한 지원을 제공하며 사용자는 로케일 및 테마 해상도를 사용자 정의 할 수 있습니다.
- Spring은 더 유연하게 만들고 HTTP 요청까지 라이프 사이클을 갖는 데이터 바인딩, 테마, Bean을 지원하는 자체 태그 라이브러리를 가지고 있습니다.
Q # 4) Dispatcher Servlet의 개념을 설명하십시오.
대답: Dispatcher Servlet은 들어오는 모든 HTTP 요청 및 응답을 처리하는 주요 중앙 서블릿입니다. Spring IOC와 통합되어 Spring의 모든 기능을 사용할 수 있습니다.
디스패처 서블릿이 요청을 수신하면 적절한 컨트롤러를 얻기 위해 처리기 매핑으로 전달하고 이제 컨트롤러는 올바른 서비스 메서드를 호출하고 다시 디스패처 서블릿으로 다시 보냅니다.
다시, 서블릿은 필요한 뷰를 얻기 위해 뷰 리졸버에 요청을 보낸 다음 클라이언트 브라우저에 응답을 보냅니다.
디스패처 서블릿 사용법을 보여주는 코드 예제 :
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Q # 5) Spring MVC에서 ContextLoaderListner를 사용하는 이유는 무엇입니까?
대답: Spring 구성 파일을 읽고 구문 분석하고 해당 구성 파일에서 Bean로드를 처리하는 데 사용됩니다.
코드 예 :
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q # 6) Spring MVC의 프론트 컨트롤러 클래스를 설명하십시오.
대답: 프론트 컨트롤러는 애플리케이션의 전체 수신 요청을 처리합니다. Spring MVC에서 디스패처 서블릿은 프론트 컨트롤러 역할을하며 들어오는 전체 요청을 처리합니다.
Q # 7) @Autowired Annotation의 기능을 설명해주세요.
대답: @Autowired 어노테이션은 필드 및 메소드와 함께 유형별로 빈을 주입하는 역할을합니다. 이를 통해 Spring 프레임 워크가 협업 Bean을 분석하고 Bean에 주입하도록 돕습니다.
예:
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) 모델 속성 주석의 기능은 무엇입니까?
대답: @ModelAttribute 어노테이션은 Spring MVC 프레임 워크에서 중요한 역할을합니다. 각각의 모델 속성을 가진 바인딩 메소드 매개 변수를 담당하고이를 프리젠 테이션 페이지에 표시합니다.
또한 개발자가 모델 속성 주석에서 무엇을 사용하는지에 따라 다릅니다. . 메서드 수준에서 사용되는 경우 메서드가 속성을 추가 할 책임이 있음을 나타냅니다. 매개 변수로 사용되는 경우 매개 변수 값이 모델 계층에서 검색되어야 함을 나타냅니다.
Q # 9) 경로 변수의 개념과 기능을 설명하십시오.
대답: @PathVariable은 URI 템플릿의 값을 추출하기위한 핸들러 메소드에서 매개 변수로 사용되는 주석입니다.
예:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Q # 10) @RequestBody 어노테이션의 기능은 무엇입니까?
대답: @RequestBody 주석은 HTTP 본문 요청을 도메인 개체에 바인딩하는 역할을합니다. 들어오는 HTTP 요청은 HTTP 메시지 변환기의 도움을 받아 Spring에 의해 Java 객체로 자동으로 직렬화 해제됩니다.
Q # 11) @ResponseBody 어노테이션의 기능은 무엇입니까?
대답: @ResponseBody 주석이 MVC 컨트롤러에서 사용되는 경우 개발자가 선언 된 메서드의 반환 유형을 HTTP 응답 본문에 직접 작성해야 함을 나타냅니다. 여기에서 모델의 호출은 필요하지 않으며보기 이름은 Spring에서 해석되지 않습니다.
Q # 12) Spring MVC에서 View Resolver가 필요한 이유는 무엇이며 Spring의 내부 View Resolver는 무엇입니까?
대답: View Resolver는 웹 브라우저에서 모델 렌더링을 담당합니다. JSP, XML 및 Velocity 등과 같은 특정보기 기술이 필요하지 않습니다.
“InternalResourceViewResolver”는 Spring MVC의 내부 뷰 리졸버입니다.
아래에 언급 된 것처럼 Spring MVC에는 몇 가지 중요한 뷰 리졸버가 있습니다.
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver 등
Q # 13) Spring MVC Framework의 작동 원리를 설명하십시오.
대답:
아래 다이어그램은 흐름을 이해하는 데 도움이됩니다.
아시다시피 Model, View 및 Controller의 개념을 기반으로합니다. Dispatcher Servlet은 web.xml에서 수행 된 servlet-mapping에 따라 HTTP 요청을 수신합니다.
Dispatcher Servlet에서 요청을 받으면 필요한 컨트롤러 클래스를 가져 오기 위해 동일한 요청을 핸들러 매핑에 보냅니다. 핸들러 매핑은 Spring 구성 파일에 언급되어 있습니다.
다시 요청이 컨트롤러로 전송되고 컨트롤러는 요청과 메서드를 처리하고 필요한 모델 뷰 개체를 디스패처 서블릿으로 다시 보냅니다.
이제 서블릿에 의해 뷰 리졸버로 요청이 전송되어 뷰 페이지를 표시합니다.
마지막으로 Dispatcher Servlet은 모델을 프리젠 테이션 페이지로 전달하고 동일한 모델이 클라이언트 브라우저에 렌더링됩니다.
Q # 14) BindingResults를 사용하는 목적은 무엇인가요?
대답: BindingResults는 패키지에 포함 된 Spring의 인터페이스 중 하나입니다. org. Springframework .확인 바인딩 결과를 나타내는 데 사용됩니다.
제출 된 양식에서 오류를 감지하는 데 편리한 역할을합니다. 간단하고 쉬운 호출 프로세스가 있습니다. 개발자는 개체 유효성 검사 직후 바인딩 결과를 매개 변수로 입력해야합니다.
통사론:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
여기에서 Spring 프레임 워크는 @Valid 어노테이션을 읽고 이해하고 유효성 검사기를 찾으려고합니다.
Q # 15) Spring Framework의 Model 1과 Model 2 아키텍처를 설명하세요.
대답: 이는 웹 애플리케이션 개발을위한 두 가지 중요한 디자인 모델입니다.
모델 1 :
여기서 수신 요청은 서블릿 또는 JSP에 의해 처리됩니다. 서블릿 또는 JSP 페이지는 요청 처리, 요청 처리, 비즈니스 논리 제어, 데이터 유효성 검사 및 마지막으로 응답 생성을 담당합니다.
간단하고 아키텍처가 쉬우 며 소규모 산업에서 간단한 애플리케이션을 개발하는 데 주로 선호됩니다.
모델 2 :
이것은 중요한 설계 모델이며 Model View Controller 개념을 기반으로합니다. 코드를 조작하는 프레젠테이션과 논리 섹션을 분리 할 수 있습니다.
이 모델은 견고하고 신뢰할 수 있으며 이중성을 방지합니다. 크고 복잡한 애플리케이션을 구축하는 데 적합합니다.
배열에 값을 추가하는 자바
Q # 16) Spring MVC 인터셉터의 기능과 사용법을 설명하십시오.
대답: 인터셉터는 Spring MVC에서 편리한 역할을합니다. 클라이언트의 요청을 가로 채고 요청을 처리하기 전, 요청을 처리 한 후, 프레젠테이션 부분 즉보기 페이지를 완료 한 후 등과 같이 서로 다른 시간에 요청을 처리하는 데 사용됩니다.
또한 교차 절단 문제에서 사용되며 나중에 모델의 전역 매개 변수 수정, 로깅 등과 같은 코드 핸들러 반복을 줄입니다.
Q # 17) Spring MVC에서 여러 개의 Spring 설정 파일을 사용할 수 있나요?
대답: 예, Spring은 하나의 애플리케이션에 여러 구성 파일을 가질 수 있습니다.
이를 달성하는 데는 주로 두 가지 방법이 있으며 그 방법은 다음과 같습니다.
(i) 개발자는 매개 변수를 사용하여 web.xml의 모든 파일을 선언해야합니다.
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) 개발자는 기존 구성으로 파일을 가져올 수 있습니다.
Q # 18) @Component, @Controller, @Repository, @Service 주석의 기능을 설명하십시오.
대답: 이것은 Spring MVC의 중요한 주석입니다. 그것들을 살펴 보겠습니다.
@구성 요소: 이 어노테이션은 Java 클래스를 Bean으로 변환하여 Spring에서 인식하고 애플리케이션 컨텍스트에서 사용할 수 있도록합니다.
통사론:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@저장소: 이 어노테이션은 @Component와 같은 용도로 사용되지만 추가적으로 Spring에서 사용할 수있는 체크되지 않은 예외도 고려합니다.
@서비스: 이 어노테이션은 또한 Java 클래스를 빈으로 변환하지만 실시간 애플리케이션에서 더 나은 사양을 제공하므로 @component보다 @service 어노테이션을 사용하는 것이 좋습니다.
@제어 장치: 어떤 클래스라도 컨트롤러로 만들려면이 주석을 지정해야합니다.
Q # 19) Multipart resolver의 역할은 무엇이며 언제 사용하나요?
대답: Multipart Resolver는 웹 애플리케이션에서 파일 업로드를 담당합니다. 이를위한 두 가지 구현은 commonsMultipartResolver 및 StandardServletMultipartResolver입니다.
Q # 20) Spring MVC는 어떻게 유효성 검사를 지원합니까?
대답: Spring은 주로 JSR 303 주석과 Validator 인터페이스를 사용하는 두 가지 방법으로 유효성 검사 지원을 제공합니다.
Q # 21) Spring MVC 웹 애플리케이션에서 지역화는 어떻게 이루어 집니까?
대답: Spring MVC는 국제화와 지역화를 모두 지원하기 위해 LocaleResolver로 구성됩니다. 이를 가능하게하려면 아래에 언급 된대로 일부 빈을 등록해야합니다.
SessionLocaleResolver – 로케일을 분석하기 위해 사용자 세션에 이미 정의 된 속성의 도움을받습니다.
통사론:
LocaleChangeInterceptor- 들어오는 요청에 매개 변수가있을 때 유용합니다.
통사론:
Q # 22)로드 프로세스와 함께 Spring MVC의 루트 애플리케이션 컨텍스트 개념을 설명하십시오.
대답: ContextLoaderListner는 Spring MVC에서 루트 애플리케이션 컨텍스트로 알려져 있으며 전체 애플리케이션에서 사용됩니다.
Spring MVC가 부트 스트랩하는 것을 돕는 리스너입니다. 명시적인 코드 작성을 피하기 위해 applicationContext를로드하고 생성하는 데 사용됩니다. Spring Bean은 Application Context에 정의되어 있습니다.
일반적으로 dispatcherServlet은 Spring MVC에서 서블릿을 지정하는 데 사용됩니다.
Q # 23) Spring MVC에서 web.xml의 역할은 무엇이며 어디에 위치합니까?
대답: web.xml에서 ContextLoaderListner를 구성합니다. 애플리케이션을 배포 할 때 ContextLoaderListner에 대한 Servlet 컨테이너에 의해 인스턴스가 생성되고 webApplicationContext가로드됩니다.
Q # 24) 컨트롤러 메서드의 반환 유형을 설명하십시오.
대답: 컨트롤러 메서드의 중요한 반환 유형에는 String, void, view, ModelAndView, Model, Map, HttpHeaders 등이 있습니다.
Q # 25) 렌더링 단계에서 뷰가 선택되는 기준은 무엇입니까?
대답: MVC 아키텍처의 ViewResolver는 필요한보기를 선택합니다.
컨트롤러가 디스패처 서블릿에 응답을 보낼 때 표시를 위해 클라이언트 웹 브라우저로 보낼 수있는 올바른보기 페이지를 가져 오기 위해보기 확인자에게 요청을 보냅니다.
Q # 26) @Requestparam과 @PathVariable 주석의 주요 차이점은 무엇입니까?
대답: 이러한 주석은 URL에서 정보와 데이터를 가져 오는 데 사용됩니다.
그러나 이들의 주요 차이점은 @Requestparam은 쿼리 매개 변수를 가져 오는 데만 사용되고 @PathVariable은 전체 URL을 가져 오는 데 사용된다는 것입니다.
Q # 27) Aspect Oriented Programming의 개념을 설명 하시나요?
대답: AOP는 Spring MVC 아키텍처의 중요한 부분입니다. AOP는 크로스 커팅 문제와 애플리케이션, 데이터 유효성 검사, 모듈 로깅, 트랜잭션 관리, 인증 및 개체에 사용됩니다.
Aspect Oriented Programming에는 많은 부분이 있습니다. 이들은 아래에 언급되어 있습니다.
- 양상: Aspect는 트랜잭션 관리 등과 같은 교차 문제를 담당합니다.
- 조언: 기본적으로 실행되는 작업 및 메서드이며 지정된 조인 지점에도 사용됩니다.
- 포인트 컷 : 정규식 측면에서 어드바이스 실행을 담당합니다.
- 조인트 포인트 : 예외 처리, 메서드 실행, 변수 값 변경 등과 같은 프로세스에 대한 응용 프로그램의 지점입니다.
- 조언 인수 : 이러한 인수는 메서드 전달에 사용됩니다.
결론
이 기사에서 Spring MVC 아키텍처에 대한 전체 개요를 얻었 으면합니다.
여기에서 우리는 Spring MVC 흐름의 완전한 end-to-end 흐름을 다루었습니다. 왜 Spring MVC가 필요한가요? MVC 아키텍처의 다른 모듈은 무엇입니까? Spring MVC 및 디스패처 서블릿의 기능, 프론트 컨트롤러의 개념, 리스너 및 기능, @Autowired, @Controller, @RequestBody 등과 같은 다양한 유형의 주석.
또한 View Resolver 개념, AOP 프로세스 및 다양한 컨트롤러 유형과 용도에 대해 더 많이 배웠습니다. 지역화 및 인터셉터, Spring 프레임 워크의 다른 아키텍처 및 사용과 함께 바인딩 결과의 개념.
우리는 Spring 컨테이너가 무엇이며 Spring MVC에서의 사용법을 알게 되었습니까? Spring MVC의 구성 파일 사용, 경로 변수 책임 및 중요성. etc 거의 모든 중요하고 가장 기대되는 Spring MVC 인터뷰 질문이이 기사에서 설명됩니다.
그러나 면접관의 기대를 충족시키기 위해 실시간 응용 프로그램의 코드 예제로 설명하는 것이 항상 권장됩니다. 각 개념에 필요한 모든 코드는 이해하기 쉽도록 여기에서 다룹니다.
최선을 다하길 바랍니다!