35 лучших вопросов и ответов весеннего интервью: полное руководство 2022 г.

Опубликовано: 2021-01-08

Есть предстоящее интервью, связанное с Spring Framework? Возможно, вы попали на эту страницу, потому что ищете самые популярные вопросы для собеседования по Spring Framework . В нашем блоге мы обсудим самые задаваемые вопросы и ответы на весеннее интервью.

Если вы пройдете через это, скорее всего, вы продемонстрируете невероятные результаты на собеседовании. Прежде чем мы начнем, позвольте нам кратко рассказать об общем спросе на Spring Framework на текущем рынке.

Читайте: Спрос на разработчиков полного стека в Индии

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

Он также хвастается своим вкладом в таких крупных гигантов, как Amazon, Google и Alibaba. Кроме того, сообщество Spring огромно. Он охватывает все возрастные группы и очень разнообразен. Вы найдете отличные ресурсы и поддержку в Интернете, чтобы перейти на следующий уровень, облегчив ваше путешествие.

Если вы Java-программист, то Spring Framework имеет для вас решающее значение. Многие компании требуют, чтобы программист понимал Spring Framework или, по крайней мере, знал некоторые из его модулей.

Вот несколько основных вопросов и ответов на весеннее собеседование, которые вы можете ожидать от своего интервьюера.

Оглавление

Весеннее интервью Вопросы и ответы 2020

Q.1 Какие различные версии Spring Framework вы можете найти и каковы их основные функции?

Три версии: Spring 2.5, Spring 3.0 и Spring 4.0.

Spring 2.5 была первой версией, поддерживающей аннотации. Он был выпущен в 2007 году. Spring 3.0 использовал обновления Java5 и, кроме того, предлагал поддержку JEE6. Он был выпущен двумя годами позже, в 2009 году. Spring 4.0 был основным вариантом, предлагающим всестороннюю поддержку Java 8. Он был выпущен в 2013 году.

Q.2 Опишите или определите Spring Framework

Это платформа Java с открытым исходным кодом. Он используется в качестве опции для тяжелых корпоративных технологий Java. Проще говоря, он упрощает разработку Java, потому что он легкий. Разработчики могут разрабатывать приложения с использованием Spring Framework и развертывать их даже на компьютерах с ограниченным объемом памяти и ресурсов ЦП. Кроме того, он предлагает поддержку различных других сред, включая, помимо прочего, Tapestry, JSF, EJB, Hibernate, Struts и другие.

Читайте: Идеи и темы проекта полного стека

Q.3 Каковы преимущества Spring Framework?

  • Spring Framework является продуктом с открытым исходным кодом и не имеет привязки к поставщику.
  • Вы можете использовать только то, что вам действительно нужно из-за используемой многоуровневой архитектуры.
  • Spring Framework использует POJO, что значительно упрощает тестирование приложений.
  • Вы можете использовать его со всеми другими фреймворками Java с Spring Frameworks. Он не накладывает никаких ограничений или запретов.
  • Spring Framework — это модульная структура. Он очень гибкий.

Q.4 Каковы различные функции Spring Framework?

  • Легкий: Spring Framework легкий, когда мы говорим о его прозрачности и размере.
  • Инверсия управления: это принцип, при котором поток управления программой переворачивается. Здесь внешние источники, такие как службы, фреймворк и другие компоненты, управляют потоком программы вместо программиста.
  • Аспектно-ориентированное программирование: Аспектно-ориентированное программирование в Spring поддерживает разработку привязок, отделяя системные службы от бизнес-логики приложения.
  • Контейнер: Контейнер лежит в основе Spring Framework. Это контейнер, который создает объекты, связывает их, настраивает и отвечает за их полный жизненный цикл, от создания до конца.
  • MVC Framework: среда веб-приложений Spring Framework MVC проста в использовании и настраивается. Вы можете использовать другие фреймворки вместо Spring MVC Framework.
  • Управление транзакциями: Spring Framework использует общий уровень абстракции для управления транзакциями. Вы можете использовать поддержку транзакций Spring в средах с меньшим количеством контейнеров.
  • Обработка исключений JDBC: вам не нужно явно обрабатывать какие-либо исключения, связанные с базой данных. Spring JDBC Framework обрабатывает это, используя обработку исключений JDBC.

Читайте: Вопросы для интервью с разработчиками полного стека

Q.5 Сколько модулей вы можете найти в Spring Framework? Назови их.

Вы можете найти двадцать модулей, которые подразделяются на Core Container, Web, Data Access/Integration, AOP (Aspect Oriented Programming), Instrumentation и Test.

Spring Core Container: как следует из названия, это основной контейнер Spring Framework. Он состоит из

  • Весеннее ядро
  • Весенняя фасоль
  • Язык выражений Spring
  • Весенний контекст

Web: этот уровень поддерживает создание веб-приложений. Он состоит из следующих модулей:

  • Интернет
  • Интернет — МВК
  • Веб-сокет
  • Веб-портлет

Доступ к данным/интеграция: этот уровень поддерживает связь с базой данных. Он состоит из следующих модулей:

  • Связь с базой данных Java — JDBC
  • Реляционное сопоставление объектов — ORM
  • Объектные XML-преобразователи — OXM
  • Служба обмена сообщениями Java — JMS
  • Сделка

Аспектно-ориентированное программирование: на этом уровне разработчики могут использовать точечные сокращения, советы и т. д., чтобы отделить код.

Инструментарий: этот уровень обеспечивает поддержку реализации загрузчика классов и инструментария класса.

Тест: этот уровень поддерживает тестирование с помощью TestNG и Junit.

Вы также можете найти другие разные узлы, такие как:

Обмен сообщениями: этот модуль предлагает помощь для STOMP. Он также помогает в качестве модели программирования аннотаций, необходимой для маршрутизации и обработки сообщений STOMP от клиентов WebSocket.

Aspects: этот модуль поддерживает интеграцию с AspectJ.

Q.6 Что такое файл конфигурации Spring?

По сути, это файл XML. Всю информацию о классах вы можете найти в этом файле. Далее описывается, как эти классы настроены и известны друг другу. Файлы конфигурации XML детализированы, поэтому необходимо содержать их в чистоте. В противном случае управлять ими становится сложно, если ваш проект большой.

Q.7 Опишите различные компоненты приложения Spring.

Обычно приложение Spring состоит из следующих компонентов:

  • Интерфейс: Все функции определены в интерфейсе.
  • Класс компонента: здесь вы можете найти свойства, а также функции set и get.
  • Spring Аспектно-ориентированное программирование (АОП): дает функциональность сквозных задач.
  • Файл конфигурации компонента: этот файл содержит сведения о классах и способах их настройки.
  • Пользовательская программа: Пользовательская программа использует эту функцию.

Q.8 Объясните различные способы использования Spring Framework

Spring Framework можно использовать несколькими способами, например:

  • Spring Framework можно использовать как комплексное веб-приложение Spring.
  • Spring Framework можно использовать в качестве стороннего веб-фреймворка, используя промежуточный уровень Spring Frameworks.
  • Spring Framework можно использовать для удаленного использования.
  • Spring Framework можно использовать как Enterprise Java Bean, который может обертывать существующие POJO.

Q.9 Что такое Spring IOC Container?

Контейнер лежит в основе Spring Framework. Именно контейнер создает объекты, связывает их, настраивает и отвечает за их полный жизненный цикл, от создания до конца.

Контейнер Spring использует внедрение зависимостей для управления компонентами, создающими приложение. Контейнер получает указания, какие объекты создавать, устанавливать и вызывать, читая метаданные конфигурации, заданные либо аннотациями Java, либо кодом Java, либо XML.

Q.10 Что такое внедрение зависимостей?

В Dependency Injection вместо создания объектов вы просто описываете, как их создать. Разработчикам необходимо описать, какие службы требуются конкретному компоненту в файле конфигурации. Нет необходимости напрямую подключать сервисы к компонентам в коде. Они связаны друг с другом контейнером Spring IoC.

Q.11 Сколько методов можно использовать для внедрения зависимостей?

Существует три способа внедрения зависимостей:

  • Внедрение конструктора
  • Инъекция сеттера
  • Инъекция интерфейса

Однако в Spring Framework используются только инъекции конструктора и установки установки.

Q.12 Чем внедрение конструктора отличается от внедрения сеттера.

Внедрение конструктора Инъекция сеттера
Неполной или ограниченной инъекции не бывает. Инъекция может быть неполной или ограниченной.
Он не переопределяет свойство setter. Он переопределяет свойство конструктора.
Он создает новый экземпляр, если вносятся какие-либо изменения. Он не создает новый экземпляр при внесении изменений.
Это работает лучше для многих свойств. Это работает лучше для меньшего количества свойств.

Q.13 Сколько видов контейнеров IOC доступно в Spring?

Обычно вы можете найти два контейнера IOC, а именно:

  1. BeanFactory: BeanFactory — это своего рода фабричный класс, состоящий из группы bean-компонентов. Он создает экземпляр компонента всякий раз, когда это требуется клиентами.
  2. ApplicationContext: интерфейс ApplicationContext создается над интерфейсом BeanFactory. Он предлагает некоторые дополнительные функции, помимо той, что предоставляется BeanFactory.

Q.14 Расскажите нам о нескольких различиях между BeanFactory и ApplicationContext.

БинФабрика Контекст приложения
Это интерфейс, описанный в org.springframework.beans.factory.BeanFactory. Это интерфейс, описанный в org.springframework.context.ApplicationContext.
Он использует ленивую инициализацию Он использует агрессивную инициализацию
Он явно дает объект ресурса, используя синтаксис Он самостоятельно создает объекты ресурсов и управляет ими.
Это не способствует интернационализации Это способствует интернационализации
Это не помогает зависимости на основе аннотаций Это помогает зависимостям на основе аннотаций

Вопрос 15. Каковы некоторые преимущества IoC?

Некоторые из преимуществ IoC:

  • Это сократит количество кода, необходимого в вашем приложении.
  • Ваше приложение намного проще тестировать, потому что ему не нужны какие-либо синглтоны или механизмы поиска JNDI в ваших модульных тестах.
  • Это поощряет слабую связь с минимальными усилиями и наименее навязчивым механизмом.
  • Это помогает активному созданию экземпляров и ленивой загрузке сервисов.

Q.16 Что такое Spring Beans?

Spring Beans — это объекты, которые служат основой пользовательского приложения. Компоненты управляются контейнером Spring IoC. Контролируя это означает, что они создаются, настраиваются, подключаются и управляются контейнером Spring IoC. Компоненты создаются с использованием метаданных конфигурации, которые пользователи предоставляют контейнеру.

Вопрос 17. Как метаданные конфигурации передаются контейнеру Spring?

Метаданные конфигурации можно передать контейнеру Spring одним из способов:

  • Конфигурация на основе аннотаций: можно использовать аннотации для соответствующего класса, чтобы описать подключение bean-компонента к самому классу компонента. Это не настройка по умолчанию. Итак, если вы хотите использовать его, вам нужно включить его в файле конфигурации Spring, прежде чем его можно будет использовать.
  • Конфигурация на основе XML: Зависимости и службы, необходимые для bean-компонентов, упоминаются в файлах конфигурации. Они в формате XML. Они состоят из множества определений bean-компонентов и опций конфигурации для конкретных приложений. Обычно они начинаются с тега bean.
  • Конфигурация на основе Java. Основными функциями новой поддержки конфигурации Java в Spring Framework являются аннотированные методы @Bean и аннотированные классы @Configuration.

Вопрос 18. Сколько областей действия bean-компонентов поддерживает Spring?

Он поддерживает пять областей:

  • Singleton: это дает возможность определения bean-компонента одному экземпляру для каждого контейнера Spring IoC.
  • Прототип: это дает возможность одному определению bean-компонента иметь любое количество экземпляров объекта.

Приведенные ниже области доступны только в том случае, если пользователи используют ApplicationContext с поддержкой Интернета.

  • Запрос: это дает возможность определения bean-компонента для HTTP-запроса.
  • Сеанс: это дает возможность определения bean-компонента для HTTP-сеанса.
  • Global-session: Это дает возможность определения bean-компонента для глобального HTTP-сеанса.

Q.19 Объясните жизненный цикл компонента в контейнере Spring Bean Factory

  1. Контейнер Spring сначала создает экземпляр компонента из определения компонента в XML-файле.
  2. Spring с использованием внедрения зависимостей заполняет все свойства.
  3. Фабрика вызывает setBeanName(), передавая идентификатор компонента, если компонент выполняет интерфейс BeanNameAware.
  4. Фабрика вызывает setBeanFactory(), создавая свой экземпляр, если бин выполняет интерфейс BeanFactoryAware.
  5. Если есть какие-либо BeanPostProcessors, связанные с компонентом, то вызываются методы preProcessBeforeInitialization().
  6. Если компонент указывает метод инициализации, он вызывается.
  7. Если есть какие-либо BeanPostProcessors, связанные с компонентом, то вызываются методы preProcessAfterInitialization().

Q.20 Объяснение подключения компонентов

Связывание бинов — это когда все бины объединяются вместе внутри контейнера Spring. Контейнер Spring должен понимать, какие компоненты требуются и как он должен использовать внедрение зависимостей, чтобы связать компоненты вместе.

Q.21 Что такое автопроводка и назовите различные режимы автопроводки?

Контейнер Spring имеет возможность автоматически связывать отношения между соединяющимися bean-компонентами. Spring может автоматически определять соавторов для вашего компонента, просматривая содержимое файла BeanFactory.

Различные режимы автоматического подключения bean-компонентов:

  1. нет: это предварительно выбранная опция, означающая отсутствие автоматической проводки. Вам нужно использовать явную ссылку на компонент для подключения.
  2. byName: внедряет зависимость объекта на основе имени компонента. Он связывает свои свойства с bean-компонентами, которые объясняются точными именами в XML-файле.
  3. byType: как следует из названия, он внедряет зависимость объекта в соответствии с типом. Он сопоставляет и связывает свойство, если тип совпадает с одним из имен bean-компонентов в XML-файле.
  4. Конструктор: конструктор внедряет зависимость, вызывая конструктор класса. Он имеет множество параметров.
  5. Автоопределение: по умолчанию контейнер автоматически связывается с помощью конструктора. Если это не удается, он пытается автоматически подключиться по типу.

Q.22 Каковы ограничения или ограничения автоматической проводки?

Есть несколько ограничений/ограничений, с которыми приходится сталкиваться при использовании автопроводки, например:

  • Возможность переопределения: используя параметры <constructor-arg> и <property>, вы можете указать зависимости. Это заменит автоматическую проводку.
  • Примитивный тип данных: Примитивный тип данных, классы и строки не могут быть автоматически связаны.
  • Сложный характер: явная проводка предпочтительнее автоматической, потому что последняя по своей природе сбивает с толку.

Q.23 Что такое конфигурация контейнера на основе аннотаций?

Альтернатива настройкам XML, конфигурация контейнера на основе аннотаций, используется для описания связывания компонентов. Разработчик передает конфигурацию в класс компонента, используя аннотации к объявлению метода, класса или поля.

Q.24 Как включить проводку аннотаций в Spring?

Связывание аннотаций по умолчанию отключено в контейнере Spring. Таким образом, чтобы использовать связывание на основе аннотаций, вы должны включить его в файле конфигурации Spring, установив элемент <context:annotation-config/>.

Q.25 Объясните разницу между различными аннотациями, такими как @Controller, @Component, @Repository и @Service в Spring?

@Controller: указывает класс как контроллер Spring Web MVC. Он автоматически импортирует bean-компоненты, отмеченные им, в контейнер Dependency Injection.

@Component: это указывает на класс Java как на bean-компонент. Это общий стереотип для любого компонента, управляемого Spring. Процесс сканирования компонентов Spring может подобрать его и включить в контекст приложения.

@Service: эта аннотация является областью аннотации компонента. В аннотации @Component нет нового поведения. Можно использовать @Service вместо @Component в классах сервисного уровня, потому что он правильно определяет намерение.

@Repository: эта аннотация является областью аннотации @Component. Он поставляется с теми же функциями и использованием. Однако он предлагает некоторые дополнительные преимущества именно для DAO. Он получает DAO в контейнер DI и квалифицирует непроверенные исключения для перевода в Spring DataAccessException.

Q.26 Опишите поддержку Spring DAO

Поддержка объектов доступа к данным в Spring упрощает доступ к таким технологиям, как Hibernate, JDBC или JDO, надлежащим и стабильным способом. Это позволяет выбрать любую из технологий без каких-либо хлопот. Это также позволяет кодировать, не беспокоясь об отлове исключений, связанных с каждой из этих технологий.

Q.27 Какие классы доступны в spring JDBC API?

Классы, которые присутствуют в JDBC API:

  1. JdbcШаблон
  2. SimpleJdbcШаблон
  3. NamedParameterJdbcTemplate
  4. SimpleJdbcInsert
  5. SimpleJdbcCall

Q.28 Какими методами можно получить доступ к Hibernate с помощью Spring?

Есть два метода, с помощью которых можно получить доступ к Hibernate с помощью Spring:

  1. Метод Inversion of Control с обратным вызовом и шаблоном Hibernate.
  2. Применение узла перехватчика AOP и расширение HibernateDAOSupport.

Q.29 Назовите типы управления транзакциями, поддерживаемые Spring

Spring поддерживает два типа управления транзакциями. Они есть:

  1. Программное управление транзакциями: здесь транзакция контролируется с помощью программирования. Он обеспечивает большую гибкость. Однако его трудно поддерживать.
  2. Декларативное управление транзакциями. Здесь управление транзакциями отделено от бизнес-кода. Для управления транзакциями можно использовать только аннотации или конфигурации на основе XML.

Q.30 Опишите АОП

АОП известен как Аспектное программирование. Это система программирования, которая позволяет разработчикам программного обеспечения модульно объединять сквозные задачи или действия, выходящие за рамки стандартного разделения обязанностей. Примерами сквозных задач являются ведение журнала и управление транзакциями. Ядром АОП является аспект . Он иллюстрирует методы, которые могут превратить различные классы в повторно используемые модули.

Q.31 Что вы подразумеваете под Аспектом?

Аспект представляет собой модульность проблемы, которая охватывает несколько объектов. Хорошим примером пересекающихся задач в J2EE могут быть приложения для управления транзакциями. Аспекты выполняются с использованием обычных классов или обычных классов, объясненных с помощью аннотации @Aspect в Spring Framework.

Q.32 Что такое точка присоединения

Точка, в которой выполнение программы вызывается JoinPoint, например, обработка исключения или выполнение метода. В Spring AOP JoinPoint последовательно представляет выполнение метода.

Q.33 Что вы подразумеваете под средой Spring MVC?

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

Q.34 Опишите DispatcherServlet

Это ядро ​​​​фреймворка Spring Web MVC. Он управляет всеми HTTP-запросами и ответами. DispatcherServlet получает из файла конфигурации запись сопоставления обработчика и передает запрос контроллеру. Затем контроллер предоставляет объект Model и View. DispatcherServlet помечает запись преобразователя представления в файле конфигурации и вызывает определенный компонент представления.

Q.35 Объяснение контекста веб-приложения

WebApplicationContext является расширением простого ApplicationContext. У него есть еще несколько функций, которые необходимы для веб-приложений. Он отличается от обычного ApplicationContext тем, что имеет возможность разрешать темы и решать, с каким сервлетом он связан.

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

Заключение

Мы рассмотрели большинство основных вопросов весеннего интервью, которые задают интервьюеры. Если вам интересно узнать больше и вам нужна помощь отраслевых экспертов, ознакомьтесь с программой Full-Stack Software Development от upGrad & IIIT Banglore для руководителей высшего звена.

Что такое Java Spring?

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

Что такое Spring MVC?

Spring MVC (Model View Controller) — это фреймворк веб-приложений с открытым исходным кодом, написанный на Java и разрабатываемый в течение последних четырех лет командой SpringSource. Он разработан на основе Servlet API и доступен для веб-приложений Java EE 5 и приложений Google Web Toolkit. Он также интегрируется с Spring Data и Spring AOP, поэтому вы можете использовать его с Hibernate, JPA и аспектно-ориентированным программированием, среди других фреймворков. Spring MVC обладает широкими возможностями настройки и поддерживает принципы Spring Inversion of Control (IoC). Он поддерживает создание веб-приложений с отслеживанием состояния, так что вы можете поддерживать информацию о состоянии приложения между запросами.

Что такое весенняя спячка?

Hibernate — это библиотека объектно-реляционного отображения (ORM) для Java. Hibernate предназначен для обработки объектов класса Persistence Java. Это мощный, легкий и чрезвычайно портативный фреймворк ORM. Hibernate доступен по лицензии GNU Lesser General Public License (LGPL). Spring Data — это проект в рамках Spring Framework, предоставляющий набор компонентов для доступа к данным и управления ими в более объектно-ориентированной манере с использованием знакомой парадигмы Spring Inversion of Control (IoC). Hibernate — это всего лишь ORM-фреймворк. С другой стороны, Spring Data — это попытка создать уровень абстракции для различных механизмов хранения, таких как реляционная база данных, NoSQL, плоские файлы и т. д.