25 top spring mvc interview questions
Найпопулярніші весняні запитання щодо інтерв’ю з відповідями для початкових та досвідчених кандидатів:
Spring - це потужний фреймворк, який розробники Java використовують у всьому світі для розробки веб-додатків Java Enterprise.
Пружинні підставки MVC для вигляду моделі та контролера. Як і інші фреймворкові Struts, Spring також базується на технологіях J2EE, які є JSP та Servlet, а також реалізація шаблону дизайну Model, View та Controller.
Тут ми розглянемо найпоширеніші запитання для весняного інтерв’ю MVC на прикладах.
Що ви дізнаєтесь:
ігрові окуляри для віртуальної реальності
Весняна архітектура MVC
Архітектура MVC має безліч вбудованих класів та компонентів, які завжди доступні розробникам для розробки міцного та вільно пов'язаного додатка.
Слабко зв’язане означає, що між класами не повинно бути жодних жорстко закодованих залежностей. Це, в свою чергу, робить завдання досить складним, коли йдеться про зміну коду або функціональних можливостей програми.
Архітектура MVC має свої незалежні функції. Шар моделі включає всі класи POJO і допомагає в інкапсуляції даних. Шар перегляду використовується для відображення даних, присутніх на рівні моделі, і він продовжує генерувати вихідні дані у форматі HTML для клієнта, який отримує їх, як правило, у веб-браузері.
Нарешті, контролер відповідає за обробку запитів та побудову правильної моделі, і він тим самим надсилає відповідь на рівень перегляду або презентації.
У цій статті ви переглянете всі важливі теми Spring MVC, як зазначено нижче:
- Принцип роботи пружинної MVC
- Весняна архітектура
- Поняття про диспетчерський сервлет
- Обробка обробника
- Контролер
- Переглянути вирішення
- Різні шари Spring MVC
- Ядро пружини, переваги використання Spring MVC
- Пружинні модулі
- AOP
- Мова висловлювання
- Рівень доступу до даних
- Веб-модуль
- Аспекти
- Тест тощо
- Інверсія управління та введення залежностей, про файли pom.xml.
Давайте подивимось на плюси і мінуси весняного MVC !!
Плюси весняного MVC
Нижче наведено різні плюси весняного MVC:
- Оскільки він дуже малий, він забезпечує високу продуктивність із меншою кількістю проблем.
- Він має високу продуктивність, що в свою чергу збільшує розвиток.
- Він дуже безпечний, оскільки використовує Spring SPI і в основному використовується усіма банками для своїх веб-додатків.
- Ми можемо розробляти модульні додатки, оскільки вони підтримують модель подання та архітектуру контролера.
- Він підтримує повну розроблену тестову розробку, що занадто добре.
- Дотепер він найкраще підходить для гнучких розробників веб-додатків у всьому світі розробниками.
- Він має функцію розподілу відповідальності та ролей, що спрощує завдання.
- Він надає підтримку сервісу RESTful.
- Він підтримує теми, інтернаціоналізацію, інші фреймворки баз даних, JPA, декілька поглядів та підтримку спільноти.
Мінуси весняного MVC
Наведіть нижче деякі мінуси весняного MVC:
- Крива навчання фреймворку Spring та його архітектури MVC є дещо складною для розробників, оскільки вона має кілька складних концепцій.
- Весна має змінний характер, такий як XML або анотації, і це, у свою чергу, часом важко відстежувати.
- Дуже менше специфікацій у Spring MVC.
- Якщо файл jar недоступний, програма не працюватиме належним чином.
- Дуже великі проблеми з конфігурацією, багато контролерів, які потрібно обробити, безліч перетворювачів перегляду для управління тощо.
Найпопулярніші весняні запитання щодо інтерв’ю у MVC
Нижче перераховані найважливіші питання інтерв’ю для Spring MVC. Спробуйте зрозуміти концепцію кожного питання, щоб воно було дуже корисним у поясненні інтерв'юеру. Завжди намагайтеся наводити приклади програм у реальному часі або співвідносити їх. Вони корисні і для досвідчених професіоналів.
Q # 1) Що таке Spring Framework і чому він такий популярний?
Відповідь: Spring Framework - це легкий фреймворк, який використовується для розробки слабо пов'язаних веб-додатків Java.
Він забезпечує вбудований контейнер, введення залежностей та архітектуру MVC. Це дуже популярно, оскільки дозволяє роз'єднувати, багаторазово використовувати, а також забезпечує шаблони дизайну, такі як singleton, factory, щоб зменшити довжину коду тощо, а також усуває слабкі з'єднання та має потужну інтеграцію з третьою стороною.
Q # 2) Що таке Spring MVC?
Відповідь: Spring MVC слідує концепції Model, View та Controller.
Це екземпляр контролера, який використовується спільно, а також допомагає обробляти кілька запитів, які виконуються в контейнерах інверсії керування, таких як перехоплювачі та контролери. Шаблон Spring MVC допомагає відокремити аспекти програми, що включає логіку введення, бізнесу та презентації.
Запитання №3) Які основні особливості Spring Framework?
Відповідь:
Основними особливостями Spring MVC є:
- Він здатний ефективно налаштовувати фреймворк та класи як компоненти. Він також розділяє функціональні ролі та обов'язки окремо.
- Це дозволяє визначити необмежений метод контролера, що робить додаток дуже регульованим та гнучким.
- Він забезпечує хорошу настройку для обробки обробників, прив'язки, роздільної здатності перегляду та перевірки.
- Це допомагає перенести модель за допомогою карти. Він також забезпечує підтримку швидкості, JSTL, JSP, а користувач може налаштувати локаль та роздільну здатність теми.
- Spring має власну бібліотеку тегів, що робить її більш гнучкою та підтримує прив'язку даних, теми, компоненти, що мають життєвий цикл до запиту HTTP.
Q # 4) Поясніть поняття диспетчерського сервлету.
Відповідь: Диспетчерський сервлет - це основний центральний сервлет, який обробляє всі вхідні HTTP-запити та відповіді. Він має інтеграцію з Spring IOC, а отже, дозволяє використовувати всі функції Spring.
Як тільки сервлет диспетчера отримує запит, він пересилає його на відображення обробника для отримання відповідного контролера, і тепер контролер викличе правильний метод обслуговування, і знову він відправить його назад сервлету диспетчера.
Знову ж, сервлет надсилає запит засобу вирішення проблем подання для отримання необхідного перегляду, а потім він надсилає відповідь у браузер клієнта.
Приклад коду для показу використання сервлету диспетчера:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Q # 5) Яка користь ContextLoaderListner у Spring MVC?
Відповідь: Він використовується для читання та синтаксичного аналізу файлу конфігурації Spring та обробки завантаження файлів у цьому файлі конфігурації.
Приклад коду:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q # 6) Поясніть клас переднього контролера Spring MVC.
Відповідь: Front Controller відповідає за обробку всього вхідного запиту програми. У Spring MVC диспетчерський сервлет виконує функцію фронтального контролера і обробляє всі вхідні запити.
Q # 7) Поясніть функцію @Autowired Annotation.
Відповідь: Анотація @Autowired відповідає за введення компонента за типом разом із полями та методами. Тим самим допомагаючи структурі Spring у вирішенні та впорскуванні зерна, що співпрацює, у наш боб.
Приклад:
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-запит автоматично десеріалізується до об'єкта Java за допомогою Spring за допомогою перетворювачів повідомлень HTTP.
Q # 11) Яка функція анотації @ResponseBody?
Відповідь: Коли анотація @ResponseBody використовується в контролері MVC, це вказує на те, що розробнику потрібно написати тип повернення оголошеного методу безпосередньо в тіло відповіді HTTP. Тут виклик моделі не потрібно, а назва подання не інтерпретується Spring.
Q # 12) Навіщо нам потрібен View Resolver у Spring MVC та що таке внутрішній вирішувач подань у Spring?
Відповідь: 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. Диспетчерський сервлет отримує запит HTTP залежно від зіставлення сервлетів, виконаного в web.xml.
Отримавши запит сервер-програмою Dispatcher, він надсилає той самий запит до відображення обробника, щоб отримати необхідний клас контролера. Зіставлення обробників згадується у файлі конфігурації Spring.
Знову запит надсилається до контролера, і контролер обробляє запит і метод і відправляє назад необхідний об'єкт подання моделі в сервлет диспетчера.
Тепер запит надсилається до засобу вирішення проблем подання сервлетом для отримання презентації сторінки перегляду.
Нарешті, сервер-сервер диспетчера передає модель на сторінку презентації, і вона передається в браузер клієнта.
Q # 14) Яка мета використання BindingResults?
Відповідь: BindingResults - це один із інтерфейсів Spring, який входить до складу пакета орг. Пружинні рамки .перевірка і використовується для представлення результатів зв'язування.
Це відіграє зручну роль у виявленні помилок із поданих форм. Він має простий і легкий процес виклику. Розробник повинен пам’ятати, що результат прив’язки встановлюється як параметр відразу після перевірки об’єкта.
Синтаксис:
@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) Поясніть архітектуру Model 1 і Model 2 Spring Framework.
Відповідь: Це дві важливі моделі дизайну для розробки веб-додатків.
Модель 1:
Тут вхідний запит обробляється сервлетом або JSP. Сервлет або сторінка JSP відповідає за обробку, обробку запиту, контроль бізнес-логіки, перевірку даних та, нарешті, за генерацію відповіді.
Він простий і має легку архітектуру, і його переважно надають дрібні галузі для розробки простих додатків.
Модель 2:
Це важлива модель дизайну і базується на концепції Model View Controller. Він здатний розділити презентацію та логічний розділ, що маніпулює кодом.
Ця модель надійна, надійна і дозволяє уникнути подвійності. Це добре для побудови великих і складних додатків.
Q # 16) Поясніть функцію Spring MVC-перехоплювача разом із його використанням.
Відповідь: Перехоплювачі відіграють корисну роль у Spring MVC. Вони використовуються для перехоплення запиту від клієнта, обробки запиту в різний час, як перед обробкою запиту, після обробки запиту та після завершення частини презентації, тобто перегляду сторінки тощо.
Він також використовується з наскрізних проблем і зменшує повторення обробника коду, як модифікація глобальних параметрів у моделі пізніше, реєстрація тощо.
Q # 17) Чи дозволено використовувати кілька файлів конфігурації Spring у Spring MVC?
Відповідь: Так, 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. Давайте подивимось на них.
@Component: Ця анотація відповідає за перетворення класу Java у компонент bean, щоб його можна було розпізнати Spring та використовувати в контексті програми.
Синтаксис:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@ Репозиторій: Ця анотація має те саме використання, що і @Component, але додатково вона також враховує неперевірені винятки, які можна використовувати навесні.
@Service: Ця анотація також перетворює клас Java на компонент, але краще використовувати анотацію @service, ніж @component, оскільки вона забезпечує кращі характеристики в додатку реального часу.
@Controller: Якщо ми хочемо зробити будь-який клас контролером, нам потрібно вказати цю анотацію.
Q # 19) Яку роль виконує багаточастотний резольвер і коли він використовується?
Відповідь: Multipart Resolver відповідає за завантаження файлу у веб-програму. Дві реалізації для нього - це commonsMultipartResolver та StandardServletMultipartResolver.
Q # 20) Як Spring MVC забезпечує підтримку для перевірки?
Відповідь: Spring надає підтримку перевірки двома способами - тобто, головним чином, за допомогою анотації JSR 303 та інтерфейсу перевірки.
Питання # 21) Як досягається локалізація у веб-програмах Spring MVC?
Відповідь: Spring MVC налаштований на LocaleResolver для підтримки як інтернаціоналізації, так і локалізації. Щоб це стало можливим, деякі боби потрібно зареєструвати, як зазначено нижче.
SessionLocaleResolver - Для вирішення локалей потрібна допомога вже визначених атрибутів у сеансі користувача.
Синтаксис:
LocaleChangeInterceptor - Це корисно, коли у вхідному запиті присутній параметр.
Синтаксис:
Q # 22) Поясніть концепцію контексту кореневої програми у Spring MVC разом із процесом завантаження.
Відповідь: ContextLoaderListner відомий як кореневий контекст програми у Spring MVC і використовується повною програмою.
Це прослуховувач, який допомагає Spring MVC завантажуватися. Він використовується для завантаження та створення applicationContext, щоб уникнути написання явного коду. Spring bean визначається в контексті програми.
Як правило, depecherServlet використовується для вказівки сервлетів у Spring MVC.
Q # 23) Яка роль web.xml у Spring MVC та де він знаходиться?
найкращий засіб очищення реєстру для Windows 7 -
Відповідь: У web.xml ми налаштовуємо ContextLoaderListner. Коли ми розгортаємо програму, екземпляр створюється контейнером Servlet для ContextLoaderListner, а потім це призводить до завантаження webApplicationContext.
Q # 24) Опишіть деякі типи повернення методу контролера.
Відповідь: Деякі з важливих типів повернень методів контролера включають String, void, view, ModelAndView, Model, Map, HttpHeaders тощо.
Q # 25) На якій підставі вибирається подання на етапі візуалізації?
Відповідь: ViewResolver в архітектурі MVC відповідає за вибір необхідного подання.
Коли контролер надсилає відповідь сервлету диспетчера, він надсилає запит засобу вирішення проблем перегляду для отримання правильної сторінки перегляду, яку можна надіслати до веб-браузера клієнта для презентації.
Q # 26) У чому полягає основна різниця між анотацією @Requestparam та @PathVariable?
Відповідь: Ці анотації використовуються для отримання інформації та даних із URL-адреси.
Але головна різниця між ними полягає в тому, що @Requestparam використовується лише для отримання параметрів запиту, а @PathVariable - для отримання повної URL-адреси.
Q # 27) Поясніть концепцію аспектно-орієнтованого програмування?
Відповідь: AOP є важливою частиною архітектури Spring MVC. AOP використовується для перехресного вирішення проблем, а також для додатків, перевірки даних, реєстрації модулів, управління транзакціями, автентифікації та об'єктів.
Існує багато частин програмування, спрямованого на аспекти. Вони згадані нижче:
- Співвідношення: Aspect відповідає за наскрізні проблеми, такі як управління транзакціями тощо.
- Порада: В основному це дія та метод, які виконуються, а також використовуються для вказаної точки приєднання.
- Pointcut: Він відповідає за виконання порад щодо регулярних виразів.
- Спільний пункт: Це точка в додатку для таких процесів, як обробка винятків, виконання методу, зміна значень змінних тощо.
- Аргументи поради : Ці аргументи використовуються для передачі методів.
Висновок
Сподіваюся, з цієї статті ви б отримали повний огляд архітектури Spring MVC.
Тут ми розглянули повний наскрізний потік весняного потоку MVC, навіщо нам потрібний весняний MVC? Які різні модулі в архітектурі MVC? Особливості Spring MVC і диспетчерського сервлету, концепція фронтального контролера, прослуховувачі та його функції, різні типи анотацій, такі як @Autowired, @Controller, @RequestBody тощо.
Ми також дізналися більше про концепцію View Resolver, процес AOP та різні типи контролера разом із його використанням. Локалізація та перехоплювачі, різна архітектура фреймворку Spring та концепція результату прив'язки разом із його використанням.
Ми дізналися, що таке контейнер Spring та його використання у Spring MVC? Використання файлів конфігурацій у Spring MVC, змінні обов'язки та важливість шляху. і т. д. Майже всі найважливіші та найочікуваніші питання співбесіди весняного MVC пояснюються в цій статті.
Однак завжди бажано пояснити приклади коду в додатку в реальному часі, щоб задовольнити очікування інтерв’юера. Всі коди, необхідні для кожного поняття, викладені тут для Вашого легкого розуміння.
Бажаємо всього найкращого!
Рекомендована література
- Запитання та відповіді на інтерв’ю
- 25 найкращих запитань та відповідей на інтерв’ю для спритного тестування
- 25+ Найпопулярніші запитання та відповіді на інтерв’ю ADO.NET
- Деякі хитрі ручні тестування Питання та відповіді
- Запитання та відповіді на інтерв’ю для тестування ETL
- Запитання та відповіді на тестування програмного забезпечення (Частина 1)
- 40+ Популярні тестові запитання та відповіді на запитання аналітика (2021 СПИСОК)
- 25 найкращих функціональних випробувань Інтерв'ю Запитання та відповіді