top 48 spring interview questions
Список найбільш часто задаваних питань та відповідей на весняне співбесіду, які допоможуть вам підготуватися до майбутнього співбесіди:
У цій статті ми дізнаємося про найпопулярніші та широко використовувані Spring Framework. Він включає питання Spring Framework та Spring MVC для свіжих та досвідчених професіоналів. Однак перед тим, як заглибитися у весняну частину, давайте зрозуміємо, що таке фреймворк і чому нам потрібен фреймворк додатково?
Просту структуру можна зрозуміти як певну межу, яка вже побудована для того, щоб інші речі прийшли і накопичились для виконання певної дії.
У термінології програмного забезпечення фреймворк може бути визначений як певна програма, яка вже розроблена, що містить безліч функціональних можливостей та функцій для підтримки будь-якої програми, яка перебуває в режимі розробки.
Весняні рамки
Фреймворк містить кілька готових класів та компонентів, які розробнику не потрібно створювати для розробки програми, тим самим зменшуючи багато складності коду та роблячи програму простою в обслуговуванні. Це також економить час, отже досягається зниження витрат.
Весна Фреймворк відомий як легкий каркас через його невеликі розміри та високу ефективність. Він є відкритим кодом і, отже, забезпечує потужну інфраструктуру для простого та легкого розробки програм Java. Він забезпечує підтримку різних інших фреймворків, таких як Hibernate, Struts, EJB тощо.
Він розділений на певні модулі для досягнення кількох речей одночасно. Модулі Spring включають основний модуль, веб-модуль, модуль інтеграції даних, тестовий модуль, модуль AOP тощо. Кожен модуль виконує своє власне призначення відповідно до вимог розробників.
У цій статті ми висвітлимо всі важливі теми навесні, які є важливими з точки зору співбесіди.
Ми розглянемо те, що таке Spring Framework, типи його модулів, концепція введення залежностей та інверсія управління, компонент та його життєвий цикл, різні сфери використання компонента, концепція автоматичного підключення, обробка подій навесні, Spring AOP, управління транзакціями Spring , весняний MVC та його архітектурна течія.
Ми також розглянемо важливу анотацію, що використовується в різних модулях пружини та конфігурацій, а також про контейнер пружини.
Деякі приклади коду дуже важливих понять були пояснені тут, і вони допоможуть вам детально пояснити. Додаткові посилання були надані для ознайомлення з прикладом Spring MVC. Ми пояснили поняття диспетчерського сервлету дуже вишукано.
За допомогою цих чітких і точкових відповідей ви зможете впевнено відповісти на більшість питань співбесіди.
Найпопулярніші запитання та відповіді на весняні інтерв’ю
Давайте вивчимо найпоширеніші запитання весняного інтерв’ю із детальними відповідями та прикладами.
Q # 1) Що таке фреймворк? Поясніть весняні рамки.
Відповідь: Framework - це вже побудоване програмне забезпечення, яке допомагає розробникам додати більше функціональних можливостей до своїх програм, використовуючи вже побудовані класи та бібліотеки.
Spring Framework - це система введення залежностей, яка допомагає розробникам розробляти додатки на основі Java. Spring - це фреймворк з відкритим кодом для Java Enterprise.
Q # 2) Чому Spring надають перевагу іншим фреймворкам?
Відповідь: Спрінг надається перевагу іншим фреймворкам через наступні особливості:
- Дуже малий розмір і легкий
- Допомагає досягти вільно зв'язаного додатка за допомогою інверсії управління.
- Підтримка AOP
- Рамка MVC
- Хороша функція управління транзакціями
- Пружинна тара
- Обробка винятків
Q # 3) Класифікуйте різні типи модулів у Spring Framework.
Відповідь: нижче наведено п’ять основних модулів у Spring Framework:
- Spring Core Container, який включає ядро, компоненти, контекст та мову виразів.
- AOP та аспекти.
- Модуль інтеграції даних, який включає JDBC, OXM, ORM, модулі транзакцій тощо.
- Веб-модуль, що включає веб, сервлет, struts та портлет.
- Тест
Q # 4) Поясніть файл конфігурації Spring.
Відповідь: XML-файл містить всю інформацію про класи разом із процесом їх конфігурації та те, як ці класи взаємодіяли з іншими класами.
Q # 5) Поясніть поняття ін’єкції залежності.
Відповідь: По-перше, ін'єкція означає передачу залежності до будь-якого залежного об'єкта.
Введення залежності - це своєрідний шаблон дизайну, який допомагає розробити вільно пов'язане додаток. Це реалізація інверсії управління, яка допомагає у вирішенні залежностей у програмі.
Це дозволяє уникнути створення самооб’єктів і, скоріше, вказує, як об’єкти слід створювати за допомогою конфігурацій, а потім МОК вирішує, яким службам потрібно поєднувати які компоненти.
Введення залежності є основною особливістю Spring Framework.
Q # 6) Які існують різні типи введення залежності? Поясніть їх.
Відповідь: Існує два типи введення залежності. Вони такі:
- Інжекція залежностей на основі конструкції - Це досягається, коли контейнер Spring викликає конструктор з аргументами і кожен має певну залежність від іншого класу.
- Ін’єкція залежностей на основі сеттера Це досягається, коли контейнер Spring викликає метод setter зразків після виклику конструктора без аргументів для створення екземпляра компонента.
Q # 7) Що корисно використовувати - залежність від конструктора чи сеттера?
Відповідь: Обидва типи введення залежності можна використовувати відповідно до ситуації. Правилом великого пальця є те, що для обов’язкової залежності використовується ін’єкція залежностей на основі конструктора, тоді як для необов’язкової залежності використовується ін’єкція залежностей на основі сеттера.
Q # 8) Які переваги інверсії контролю?
Відповідь: Є кілька переваг МОК, і мало хто з них згадується нижче:
- IOC здатний зменшити складність коду за рахунок зменшення коду в додатку.
- Використовуючи IOC у додатку, тестування стає простішим та легшим, оскільки не потрібні пошуки та одиночні перевірки.
- Слабке зчеплення досягається IOC, що, в свою чергу, робить код більш ремонтопридатним.
- IOC підтримує раннє створення екземплярів та пізнє завантаження служб.
Q # 9) Поясніть поняття AOP.
Відповідь: AOP розшифровується як Aspect Oriented Programming. Це ще один підхід до програмування, який допомагає розробникам реструктуризувати поведінку таких обов'язків, як управління транзакціями та ведення журналу.
AOP реалізовано для наскрізних питань, тобто визначення наведено в одному місці, і функціонально воно може використовуватися в багатьох місцях за допомогою сценарію.
Q # 10) Поясніть використання Spring Container.
Відповідь: Він є основною частиною та основою Spring framework. Контейнер Spring допомагає створювати об'єкти, об'єднувати об'єкти разом, керувати їхніми конфігураціями та завершувати життєвий цикл створення, реалізації та знищення.
Контейнер Spring використовує допомогу Dependency Injection для управління компонентами, що створюють додаток.
Q # 11) Які різні типи контейнерів МОК?
Відповідь: Контейнер МОК буває двох типів, як зазначено нижче:
- Бобовий завод - Це простий контейнер, який забезпечує підтримку введення залежностей.
- Spring ApplicationContext - Це вдосконалений контейнер, який додає складні функції, такі як декодування текстових повідомлень із файлів, і здатний публікувати події для слухачів.
Q # 12) Яка реалізація контейнера Bean Factory?
Відповідь: Клас XmlBeanFactory є найважливішою реалізацією фабрики бобів і корисний для читання даних із файлів XML.
Q # 13) Що таке реалізація контейнера ApplicationContext?
Відповідь: Деякі з найбільш часто використовуваних контейнерів ApplicationContext включають FileSystemXmlApplicationContext, ClassPathXmlApplicationContext та WebXmlApplicationContext тощо.
Q # 14) Що таке квасоля навесні?
Відповідь: Spring Beans - це не що інше, як прості об'єкти Java, якими керує контейнер Spring.
Приклад:
package com.javaworld; public class Demo { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println('Display Information: ' + message); } }
Q # 15) Які компоненти є у Bean Definition?
Відповідь: В основному, визначення компонента містить метадані конфігурації, які використовуються контейнером Spring, щоб знати такі деталі, як процес створення компонента, життєвий цикл компонента та залежності компонента.
безкоштовний ремонт реєстру для Windows 10 -
Q # 16) Які способи надання метаданих конфігурації контейнеру Spring?
Відповідь: Метадані конфігурації можуть бути надані Spring Container трьома способами, тобто через XML-файл конфігурації, конфігурацію на основі анотацій та конфігурацію на основі Java.
Q # 17) Який синтаксис для додавання компонента у програмі Spring?
Відповідь: Синтаксис:
Q # 18) Які існують типи сфери дії bean?
Відповідь: Область дії компонента може бути визначена як синглтон і прототип, запит, сесія, глобальна сесія тощо.
- Прототип оголошується, коли кожен раз потрібен новий екземпляр компонента.
- Синглтон оголошується, коли кожен раз використовується один і той же екземпляр компонента.
- Запит використовується для обсягу запиту HTTP.
- Сеанс використовується для обсягу сеансу HTTP.
- Глобальний HTTP-сеанс переводить бін на глобальний сеанс HTTP.
Syntax:
Запитання №19) Яка область застосування bean за замовчуванням навесні? Крім того, вони синхронізовані?
Відповідь: За замовчуванням сфера дії bean у Spring - Singleton. Більше того, вони не синхронізовані, тобто не захищені від потоків.
Q # 20) Який життєвий цикл квасолі навесні?
Відповідь: Життєвий цикл ярого квасолі слідує певним крокам, як зазначено нижче:
- Екземпляр - Spring контейнер із XML-файлу знаходить визначення компонента, а потім екземпляр компонента.
- Властивості заповнення - Spring-контейнер заповнює всі властивості, згадані у визначенні компонента, за допомогою введення залежностей.
- Встановлення назви Bean.
- Налаштування фасолевого заводу.
- Попередня ініціалізація та ініціалізація компонента.
- Після ініціалізації компонента.
- Знищте бін, викликавши метод delete ().
Q # 21) Що ви маєте на увазі під внутрішньою квасолею?
Відповідь: Бін, який визначається всередині властивості або елемента конструктора, називається внутрішнім компонентом.
Для внутрішнього компонента не потрібні конкретні ідентифікатори або назви, насправді контейнер Spring уникає цих значень разом із визначенням області. Внутрішні боби вважаються анонімними, і їх сфера застосування завжди визначається як прототипи.
Q # 22) Які способи вставити концепцію колекції навесні?
Відповідь: В основному є чотири елементи колекції, які потрібно вставити навесні.
Вони є:
- елемент - Він з'єднує набір значень, вилучаючи з них дублікати.
- елемент - Корисно вставляти або вводити значення, а також допускає повторювані значення.
- елемент - Він використовується для вставки пари ключ або ім’я-значення, яка може бути будь-якого типу.
- елемент - Він використовується для вставки пар ключ або ім'я-значення, але типом має бути лише рядок.
Q # 23) Поясніть поняття автоматичного підключення.
Відповідь: Автопровід - важливе поняття в рамках Spring. Він використовується для неявної ін’єкції залежності об’єкта за допомогою ін’єкції на основі сеттера або конструктора. Автопровід працює лише з контрольними типами, тому він не корисний для введення значень для примітивних і рядкових типів.
Найкраща перевага autowire полягає в тому, що розробникам потрібно писати менше коду, оскільки введення залежностей подбає autowire. Крім того, програміст тоді не контролював процес.
Syntax:
Рекомендована література => Весняна автоматична анотація, Прізвище Autowire Spring Bean
Q # 24) Поясніть різні режими автоматичного підключення.
Відповідь: Автоматичне підключення поставляється з п’ятьма режимами, які направляють контейнер Spring для використання функції впорскування залежності.
- Немає режиму - Це називається налаштуванням за замовчуванням і передбачає відключення автоматичного підключення, і для еталонного підключення слід використовувати явний компонент.
- byName - Автопровід можна виконати за назвою власності. Spring-контейнер шукає у файлі конфігурації XML компоненти, для атрибута autowire яких встановлено значення byName.
- byType - Автопровід можна здійснити за типом властивості. Spring-контейнер шукає у файлі конфігурації XML компоненти, для атрибута autowire яких встановлено значення byType.
- Будівельник - Це майже те ж саме, що і byType, але тип застосовується для аргументів конструктора, якщо в контейнері не знайдено жодного типу аргументу конструктора, тоді виникає помилка.
- Автовизначення - Це стосується поведінки Весни, яка показує пріоритет її вибору. По-перше, Spring вибирає автоматичне підключення за допомогою конструктора, якщо цього не відбувається, то він змінює пріоритет на byType.
Q # 25) Чи є обмеження щодо автоматичного підключення? Якщо так, поясніть.
Відповідь: Так, існують деякі обмеження автоматичного підключення, які згадані нижче:
- Завжди існує можливість заміни.
- Розробник не зможе автоматично підключати примітивні властивості та властивості Spring.
- Автопровід стає складним при використанні у великих додатках порівняно з явним підключенням.
Q # 26) Що таке проводка анотацій і як ми її вмикаємо?
Відповідь: Альтернативним використанням XML є анотації, в яких розробники переміщують всю конфігурацію в один клас за допомогою анотацій для певного класу або методу.
Його увімкнено у файлі конфігурації Spring шляхом оголошення.
Q # 27) Яка користь від @Required анотації?
Відповідь: Він використовується для позначення того, що під час конфігурації властивість компонента має бути заповнене за допомогою автоматичного підключення або явного значення властивості у визначенні компонента.
Приклад:
package com.softwaretestinghelp; import org.Springframework.beans.factory.annotation.Required; public class Employee { private Integer age; private String Lname; @Required public void setAge(Integer age) { this.age = age; } public Integer getAge() { return age; } @Required public void setLName(String Lname) { this.name = name; } public String getLName() { return name; } }
Q # 28) Яка користь від анотації @Autowired?
Відповідь: Це допомагає отримати кращий контроль та розуміння того, як і де слід досягати автоматичного підключення. Він може бути використаний для автоматичного підключення компонента до будь-якого методу, властивості або конструктора встановлення.
Приклад:
package com.softwaretestinghelp; import org.Springframework.beans.factory.annotation.Autowired; public class code-editor { private SpellCheck spellCheck; @Autowired public void setSpellCheck( SpellCheck spellCheck ){ this.spellCheck = spellCheck; } public SpellCheck getSpellCheck( ) { return spellCheck; } public void spellCheck() { spellCheck.checkSpelling(); } }
Q # 29) Для чого використовується анотація @Qualifier?
Відповідь: В основному він використовується, коли розробник зобов'язаний створити багато компонентів одного типу і хоче з'єднати властивість лише з одного з них, у цьому випадку @Qualifier з @Autowired використовується для усунення плутанини та вказівки точного компонента, що підключається .
Q # 30) Як обробляється подія навесні?
шлюз за замовчуванням недоступний для Windows 10 2019
Відповідь: Обробка подій досягається за допомогою класу ApplicationEvent та інтерфейсу ApplicationListner.
Коли компонент реалізує ApplicationListner, ApplicationEvent генерується до ApplicationContext і повідомляє, що компонент генерується.
Q # 31) Які приклади стандартних весняних подій?
Відповідь: Існує безліч стандартних весняних подій, що служать відповідним цілям, і серед них мало ContextStartedEvent, ContextRefreshedEvent, ContextStoppedEvent, ContextClosedEvent, RequestHandledEvent тощо.
Q # 32) Що позначає Joint Point?
Відповідь: Він позначає конкретну точку, де аспект AOP можна підключити. Це оригінальне розташування в програмі, де можна виконати певні дії за допомогою AOP.
Q # 33) Що таке шаблон JDBC і як ним користуватися навесні?
Відповідь: Шаблон JDBC - це шаблон, наданий фреймворком Spring для більш ефективного використання JDBC.
Шаблон JDBC зазвичай використовується для перетворення даних бази даних в об'єкти, виконання підготовлених та викликаних операторів, а також підтримує обробку помилок для бази даних.
Q # 34) Що таке управління транзакціями навесні? Поясніть різні типи управління транзакціями.
Відповідь: Транзакція - це в основному якась операція, яка виконується над деякими даними бази даних. Управління транзакціями підпорядковується системі управління реляційними базами даних і використовується для забезпечення етики та послідовності даних.
Основною перевагою управління транзакціями є те, що воно підтримує декларативне та програмне управління транзакціями та API, такі як Hibernate, JTA та JDBC шляхом правильної інтеграції.
Існує два типи управління транзакціями, про які йдеться нижче:
- Програмне управління транзакціями використовується для допомоги транзакції з точки зору кодування або сценарію.
- Декларативне управління транзакціями використовується для ізоляції коду бізнесу та транзакцій.
Q # 35) Яке управління транзакціями найчастіше використовується?
Відповідь: Декларативне управління транзакціями широко використовується розробниками.
Q # 36) Поясніть структуру Spring MVC.
Відповідь: MVC розшифровується як Model, View та Controller. Spring MVC framework використовується для розробки веб-додатків з хорошим потоком архітектури та конфігураціями. Він дуже гнучкий в інтеграції з іншими фреймворками.
Q # 37) Поясніть архітектуру Spring MVC.
Відповідь: Архітектура Spring MVC базується на Model, View та Controller.
(зображення джерело )
У наведеному вище посиланні також є простий приклад повного потоку MVC Spring для довідки.
Потік весняної архітектури йде наступним чином :
- Запит отримує сервлет диспетчера.
- Сервлет-диспетчер надсилає запит до відображення обробника, яке надає відповідь з точки зору імені класу контролера.
- Тепер запит надсилається до контролера з сервлета диспетчера, отже контролер обробляє запит і повертає об'єкт подання моделі як відповідь на сервлет диспетчера.
- Знову ж таки, сервлет диспетчера надсилає запит на переглядач, щоб отримати правильну сторінку перегляду.
- Нарешті, сервлет диспетчера надсилає отриманий об’єкт моделі на сторінку браузера для відображення результату.
@Controller і @RequestMapping - це дві основні анотації, які використовуються у весняному потоці MVC.
Q # 38) Яка користь сервлету Dispatcher?
Відповідь: Диспетчерський сервлет використовується для обробки всіх вхідних запитів HTTP та відповідей клієнта. В цілому, він контролює всі комунікації від обробника до контролера, щоб переглядати резольвер на фактичну сторінку перегляду.
Q # 39) Поясніть використання анотацій @Controller та @RequestMapping у Spring MVC.
Відповідь:
@Controller - Він позначає той конкретний клас, який поводиться як контролер.
@RequestMapping - В основному він використовується для відображення URL-адреси для цілого класу або будь-якого конкретного методу.
Q # 40) Поясніть інверсію контролю та введення залежностей на простому прикладі.
Відповідь: Як ми знаємо, він використовується для видалення залежності з програми.
Код без DI:
public class Student { Address address; Employee() { address= new Address();// here we are creating instance } }
Студент та адреса використовуватимуть один і той же екземпляр, отже, тут буде створена залежність.
Код з DI:
public class Student{ Address address; Employee(Address address) { this.address=address;//not creating instance } }
Тут не створюється жоден екземпляр, тому залежність не створюється, отже, код стає більш гнучким і вільно зв'язаним.
Q # 41) Поясніть поради та їх типи.
Відповідь: Будь-які дії, вжиті AOP, називаються порадами.
Існує п’ять типів Порад, як зазначено нижче:
- Перед порадою.
- Після поради.
- Після повернення поради.
- Навколо порада.
- Кидає пораду.
Q # 42) Які різні типи об’єктного реляційного відображення підтримує Spring?
Відповідь: Spring підтримує ORM, такі як Hibernate, IBatis, TopLink, Java Data Object, OJB та JPA тощо.
Q # 43) Чому Spring віддають перевагу фреймворкам чи основним перевагам Spring Framework?
Відповідь: Весна є кращою за рамки з кількох причин. Деякі з них згадані нижче:
- Spring вирішує багато складних проблем розробки додатків за допомогою таких підмодулів, як ядро, веб, доступ до даних, тестування тощо.
- Spring забезпечує заняття POJO для розвитку, що, в свою чергу, зменшує стрес.
- Потужна інтеграція з іншими фреймворками.
- Хороше тестування додатків.
- Функція управління транзакціями та модульність.
Q # 44) Що ви маєте на увазі під Spring Batch?
Відповідь: Spring batch - це також легкий фреймворк, який створений для підтримки розробки надійних пакетних додатків для корпоративної системи.
Spring batch покращує продуктивність, підхід до розробки та робить певні функції, які користувачі навчили навесні, набагато простішими.
Q # 45) Яке основне використання Spring batch framework?
Відповідь: Spring batch в основному використовується для читання та запису файлів, а також при виконанні певних операцій у базі даних, таких як читання або запис, перетворення даних, створення звітів, а також імпорт та експорт даних тощо.
Q # 46) Поясніть архітектуру весняної партії.
Відповідь: Spring batch архітектура в основному складається з трьох компонентних шарів, тобто програми, ядра та інфраструктури.
Додаток складається із сценаріїв та пакетних завдань, створених розробниками через весняний пакет. Ядро містить усі важливі та необхідні класи, необхідні для запуску та контролю пакетного завдання. Нарешті, інфраструктура обробляє як додаток, так і ядро, включаючи сервіси, читачі, автори тощо.
Q # 47) Поясніть завдання в Spring Batch.
Відповідь: Тасклет - це інтерфейс, який часто викликається для виконання одного завдання, наприклад, як очищення, видалення чи налаштування ресурсів під час виконання.
Q # 48) Поясніть принцип роботи Spring Batch.
Відповідь: Весняна партія в основному працює на чотирьох етапах, як зазначено нижче:
- По-перше, поетапне керівництво роботою виконувати свою відповідну роботу.
- Він має інтерфейс itemReader для надання даних.
- Він має інтерфейс itemProcessor для перетворення даних.
- Нарешті, він має елемент інтерфейсу itemStreamWriter для отримання бажаного результату.
Висновок
Ми сподіваємось, що ця стаття дала б вам чітку інформацію про Весняні рамки. Він пояснив Spring та його особливості, програми, в яких використовується Spring, і чому це важливо для розробки додатків.
Модулі пружин, інжекція залежностей, інверсія управління, управління транзакціями, програмоване за формами, концепція вільного зчеплення, архітектура Spring MVC, важливі анотації, компоненти та автоматичне підключення.
Усі важливі запитання весняного інтерв’ю, що охоплюють усі вищезазначені теми, включені сюди. Завжди доцільно пояснити будь-яку концепцію за допомогою прикладу коду, що дає кращу зрозумілість інтерв'юеру.
Сподіваюся, ця стаття допоможе вам очистити свої інтерв’ю, Все найкраще!
Рекомендована література
- Запитання та відповіді на інтерв’ю
- Деякі цікаві питання для тестування програмного забезпечення
- 20 Вибіркових запитань щодо інтерв’ю з якості для очищення інтерв’ю у 2021 році
- Запитання та відповіді на інтерв’ю для тестування ETL
- 25 найкращих запитань для інтерв’ю на Perl, які слід підготувати у 2021 році
- Найкращі 25 запитань щодо співбесіди з програмною інженерією (ОСТАННЕ 2021)
- Найпопулярніші 36 запитань інтерв’ю у Дженкінса (на 2021 рік)
- Найпопулярніші 12 запитань інтерв’ю Mockito (глузуюче рамкове інтерв’ю)