15 обязательных вопросов для интервью Spring MVC

Опубликовано: 2018-03-25

Spring стал одним из наиболее часто используемых фреймворков Java для разработки веб-приложений. Все новые Java-приложения по умолчанию используют Spring core и Spring MVC frameworks. Благодаря его растущей популярности, рекрутеры по всему миру ищут кандидатов, которые будут работать с фреймворком Spring. Если вы приходите на собеседование на роль разработчика Java, Spring MVC — это одна из первых вещей, которые вы должны освежить в своих знаниях по вопросам собеседования по Spring framework — независимо от того, новичок вы или человек с опытом.

В конце концов, фреймворк Spring MVC является наиболее часто используемым фреймворком Java, и вам обязательно будут задавать вопросы на любом Java (или любом связанном с ним собеседовании), на котором вы сидите. Если вы не знали, Spring MVC — это надежная среда на основе Java, которая помогает создавать веб-приложения. Как следует из названия, он использует архитектуру MVC — модель, представление, контроллер. Spring MVC обеспечивает элегантный способ использования Spring с инфраструктурой MVC. Платформа Spring, выпущенная в 2002 году, представляет собой среду с открытым исходным кодом, что означает, что разработчики со всего мира могут вносить свой вклад в разработку и дальнейшие выпуски платформы.

Научитесь создавать приложения, такие как Swiggy, Quora, IMDB и другие.

Это также означает, что существует постоянно активное сообщество разработчиков, которые помогут вам с вашими запросами. Открытый исходный код также добавляет множество преимуществ, которые предлагает среда Spring. Особенно, если вы начинаете свою карьеру в Java, вам потребуется руководство, а разнообразное сообщество разработчиков Java гарантирует, что у вас не будет недостатка в руководстве, когда дело доходит до работы со Spring MVC.

С таким большим количеством предлагаемых преимуществ не должно быть ни малейшего сомнения в том, почему Spring MVC является любимой темой интервью, по которой вам задают вопросы.

В этой статье мы поговорим о 15 обязательных вопросах Spring MVC, с которыми вы можете столкнуться на любом собеседовании.

1. Что такое фреймворк Spring?

Spring — это среда с открытым исходным кодом, созданная для упрощения разработки приложений. Он имеет многоуровневую структуру, которая позволяет разработчику выбирать используемые компоненты. Он состоит из трех основных компонентов: Spring Core, Spring AOP и Spring MVC.

Далее можно рассказать о своем опыте работы со Spring, если таковой имеется. Это добавит вес вашему ответу.

Почему компании ищут разработчиков полного стека

2. Каковы основные особенности среды Spring?

Spring Framework предлагает множество функций, облегчающих жизнь разработчика. Некоторые из них:

  • Легкий: Spring чрезвычайно легкий, базовая версия весит около 1 МБ с незначительными накладными расходами на обработку.
  • Инверсия управления (IoC): внедрение зависимостей или инверсия управления — одна из наиболее важных функций Spring. Используя IoC, разработчикам не нужно создавать полную среду для объекта и его зависимостей; они могут просто создавать и тестировать объект, с которым они работают в данный момент времени. Зависимости объектов будут включены или вызваны, когда возникнет необходимость.
  • Аспектно-ориентированное программирование: Spring поддерживает аспектно-ориентированное программирование. АОП изолирует второстепенные функции от бизнес-логики программиста. Это не только обеспечивает модульность, но и упрощает сопровождение кода.
  • Архитектура MVC: Spring поставляется с инфраструктурой MVC для веб-приложений. Эта структура легко настраивается с использованием различных технологий, таких как JSP, Tiles, iText и POI.
  • Обработка исключений JDBC: Spring поставляется с предопределенным уровнем абстракции JDBC, который упрощает общий процесс обработки исключений.

3. Объясните немного больше о внедрении зависимостей.

Инверсия управления или внедрение зависимостей стремится упростить процесс создания объектов, следуя простой концепции — не создавайте объекты, просто опишите, как они должны быть созданы. Используя IoC, объекты получают свои зависимости во время сборки от внешнего объекта, который отвечает за координацию каждого объекта в системе. По сути, мы внедряем зависимости в объекты с помощью IOC или Dependency Injection.

4. Объясните различные типы внедрения зависимостей в Spring? Когда какой использовать?

Spring предоставляет разработчикам следующие два типа внедрения зависимостей:

  • DI на основе конструктора: DI на основе конструктора достигается путем передачи ряда аргументов (каждый из которых представляет зависимость от другого класса) в конструктор класса. Просто зависимости задаются в виде параметров конструктора.
  • DI на основе установки: когда вы работаете с конструктором без аргументов, вы будете устанавливать значения, передавая аргументы через функцию установки для создания экземпляра рассматриваемого компонента, это называется внедрением зависимостей на основе установки.

Когда вы будете использовать какой из них, сводится к вашим требованиям. Однако рекомендуется использовать DI на основе Setter для необязательных зависимостей и DI на основе конструктора для обязательных зависимостей.
Интервью с Фаруком Адамом, соучредителем Fynd

5. Что такое среда Spring MVC?

Spring MVC является одним из основных компонентов среды Spring. Он поставляется с готовыми к использованию компонентами и элементами, которые помогают разработчикам создавать гибкие и надежные веб-приложения. Как следует из названия, архитектура MVC разделяет различные аспекты приложения — логику ввода, бизнес-логику и логику пользовательского интерфейса. Он также обеспечивает слабую связь между M, V и C приложения.

6. Каковы некоторые преимущества среды Spring MVC по сравнению с другими средами MVC?

Фреймворк Spring MVC имеет ряд явных преимуществ по сравнению с другими фреймворками. Некоторые из преимуществ:

    • Четкое разделение ролей . Для каждой роли существует специализированный объект, что обеспечивает четкое разделение ролей.
    • Многоразовый бизнес-код . С Spring MVC вам не нужно дублировать свой код. Вы можете использовать существующие объекты в качестве команд вместо их зеркального отображения, чтобы расширить определенный базовый класс фреймворка.
    • Настраиваемая привязка и проверка
    • Настраиваемая локаль и разрешение темы
    • Настраиваемое сопоставление обработчиков и разрешение просмотра
  • Начиная с Spring 2.0, фреймворк поставляется с библиотекой тегов форм JSP, которая значительно упрощает написание форм на страницах JSP.

7. Что такое DispatcherServlet?

Платформа Spring MVC управляется запросами и разработана вокруг центрального сервлета, который обрабатывает все HTTP-запросы и ответы. Однако DispatcherServlet делает гораздо больше. Он легко интегрируется с контейнером IoC и позволяет использовать все функции Spring.
При получении HTTP-запроса DispatcherServlet консультируется с HandlerMapping (это файлы конфигурации) для вызова соответствующего контроллера. Затем контроллер вызывает соответствующие методы службы для установки данных модели. Он также возвращает имя представления в DispatcherServlet. DispatcherServlet с помощью ViewResolver подбирает определенное представление для запроса. Как только представление завершено, DispatcherServlet передает данные модели в представление, где они окончательно отображаются в браузере.
Что такое разработка через тестирование: руководство для новичков

8. Что такое класс переднего контроллера Spring MVC?

Фронт-контроллер — это контроллер, который обрабатывает все запросы к веб-приложению. Когда дело доходит до Spring MVC, DispatcherServlet является этим передним контроллером. Когда веб-запрос отправляется в приложение Spring MVC, DISpatcherServlet позаботится обо всем. Во-первых, он принимает запрос. Затем он организует различные компоненты, такие как обработчики запросов, контроллеры, преобразователи представлений и т. д. — все, что необходимо для обработки запроса. И, наконец, он отображает содержимое в браузере.

9. Что такое шаблон Viewresolver и как он работает в MVC?

View Resolver — это шаблон J2EE, который позволяет приложениям динамически выбирать технологию для рендеринга данных в браузере (View). Любая технология, такая как HTML, JSP, Tapestry, XSLT, JSF или любая другая подобная технология, может использоваться для View. Шаблон View Resolver содержит сопоставление различных представлений. Контроллер возвращает имя представления, которое затем передается преобразователю представлений для выбора соответствующей технологии.

10. Как Spring MVC обеспечивает поддержку проверки?

Spring в основном поддерживает два типа проверок:

  • Использование аннотаций JSR-303 и любой эталонной реализации, например, Hibernate Validator или
  • Реализация интерфейса org.springframework.validation.Validator.

11. Пользователь получает ошибку проверки в других полях при установке флажка, после чего снимает его. Каким будет текущий статус выбора в командном объекте Spring MVC? Как вы будете решать эту проблему?

Это один из самых сложных вопросов, на который нужно ответить, если вы не знаете о поведении HTTP Post в Spring MVC.
Во время публикации HTTP, если вы снимите флажок, HTTP не будет включать параметр запроса для флажка, что означает, что обновленный выбор не будет получен. Чтобы это исправить, вы можете использовать скрытое поле формы, которое начинается с «_».
Как преуспеть в вашей первой работе по разработке программного обеспечения

12. Как вы сравните структуру MVC с трехуровневой архитектурой?

Трехуровневая архитектура — это архитектурный стиль, тогда как MVC — это шаблон проектирования.
3-уровневая архитектура с частью mvc
При этом в более крупных приложениях MVC формирует уровень представления трехуровневой архитектуры. Модель, представление и контроллер связаны только с презентацией — они используют средний уровень для заполнения своих моделей.

13. Как мы должны использовать JDBC в Spring для оптимизации производительности?

Spring предоставляет класс шаблонов, который называется JDBCTemplate . Использование JDBC с этим шаблоном повышает производительность коллекторов.

14. Что вы подразумеваете под «бином» в контексте среды Spring?

Любой класс, который инициализируется контейнером IoC, известен как bean-компонент в Spring. Жизненный цикл Spring Bean управляется Spring IoC Container.

15. Что такое «Scope» в отношении Spring Beans?

Spring Beans поставляется со следующими пятью областями:

    • Прототип : Всякий раз, когда есть запрос на bean-компонент, каждый раз создается отдельный прототип.
    • Запрос : это похоже на предыдущую область, но только для веб-приложений. Для каждого HTTP-запроса Spring создает новый экземпляр компонента.
    • Singleton : для каждого контейнера создается только один bean-компонент, и он действует как область действия по умолчанию для этого bean-компонента. Во всех этих случаях компоненты не могут использовать общую переменную экземпляра, поскольку это может привести к несогласованности данных.
    • Сессия : bean-компонент создается для каждой HTTP-сессии.
    • Global-session : глобальный сеанс создается для приложений с портлетами.

Фреймворк Spring является расширяемым, то есть вы также можете создать свою собственную область видимости. Атрибут «scope» элемента bean используется для определения области действия.
Как стать полноценным разработчиком

Завершение…

Это было все об обязательных вопросах интервью Spring и ответах, вращающихся вокруг среды Spring - и, если быть точным, Spring MVC. Если вы Java-разработчик и хотите начать работу со Spring, самое подходящее время! Узнайте больше, если вы ищете вопросы для собеседования по Java.

Потратьте часть своего драгоценного времени, чтобы получить ответы на вопросы для собеседования по Java Spring, и все будет готово. Организации ищут разработчиков, которые хорошо владеют этой структурой — благодаря функциям, которые она может предложить.

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Станьте разработчиком полного стека

Диплом PG UpGrad и IIIT-Bangalore в области разработки программного обеспечения
Подать заявку на участие в программе Executive PG по разработке программного обеспечения от IIITB