Топ-80 запитань на весняній співбесіді MVC (2025)
Ось запитання та відповіді на весняну співбесіду MVC для нових і досвідчених кандидатів, щоб отримати роботу своєї мрії.
Запитання та відповіді на весняній співбесіді MVC для першокурсників
1) Що таке пружина?
Весна призначена бути каркасом, який допомагає Java програміст для розробки коду, і він надає IOC-контейнер, Dependency Injector, MVC flow і багато інших API для Java-програміста.
2) Що таке поради навесні?
Це виконання аспекту. Порада — це все одно, що змусити вашу програму навчитися новому трюку. Зазвичай вони вводяться в точках з’єднання.
👉 Безкоштовне завантаження PDF: Spring MVC Framework Interview Questions & Answers
3) Яка типова область bean у Spring framework?
Типовою областю bean є Singleton for Spring.
4) Назвіть типи керування транзакціями, які підтримує Spring?
Управління транзакціями, яке підтримує Spring, це:
- Декларативне управління транзакціями.
- Програмне управління транзакціями.
5) Чи є компоненти Singleton потокобезпечними у Spring Framework?
Ні, одиночні компоненти не є потокобезпечними у Spring framework.
6) Які переваги Spring Framework?
Нижче наведено переваги Пружинний каркас:
- Широке використання компонентів
- Багаторазовість
- Розв'язка
- Зменшує зусилля на кодування завдяки використанню реалізацій шаблонів, таких як singleton, factory, service locator тощо.
- Усунення негерметичних з'єднань
- Декларативне управління транзакціями
- Легко інтегрується зі сторонніми інструментами та технологіями.
7) Що таке Bean Factory?
Bean Factory є ядром Spring фреймворку, і це легкий контейнер, який завантажує визначення bean і керує вашими bean-ами. Bean-компоненти налаштовуються за допомогою файлу XML і керують визначеним bean-компонентом. Він також відповідає за методи життєвого циклу та впроваджує залежності. Він також видаляє спеціальні синглетони та фабрики.
8) Визначити Bean Wiring?
Зв’язування компонентів — це створення зв’язків між компонентами додатків, які знаходяться між компонентами в певному пружинному контейнері.
9) Що називається Spring MVC?
Spring MVC — це єдиний спільний екземпляр контролера, який використовується для обробки контролерів типу запитів, перехоплювачів, які працюють у контейнері IoC. Він також дозволяє використовувати кілька диспетчерських сервлетів, які можуть спільно використовувати інтерфейс контексту програми, але не інтерфейс на основі класу.
10) Для чого потрібен фреймворк Spring?
Spring framework потрібен, оскільки він –
- Дуже легкий контейнер
- Рамки
- МОК
- АОП
11) Назвіть різні модулі, які використовуються у Spring framework?
- Модуль AOP (аспектно-орієнтоване програмування)
- Абстракція JDBC і модуль DAO
- Модуль контейнера Core
- Модуль каркаса MVC
- Модуль контексту програми
- Модуль інтеграції відображення O/R (об'єктний/реляційний)
- Веб-модуль
12) Поясніть RowCallbackHandler у Spring?
RowCallbackHandler викликається для кожного рядка в ResultSet і використовується для читання значень із ResultSet.
13) Визначити модуль контексту програми?
Це дуже важливий модуль, який надає різні необхідні послуги, такі як інтеграція EJB, віддалений доступ, доступ до JNDI та планування. Він перетворює пружину на каркас. Він також розширює ідею BeanFactory шляхом застосування подій життєвого циклу, забезпечуючи підтримку повідомлень про інтернаціоналізацію та перевірку.
14) Написати про модуль AOP?
Модуль AOP використовується для створення аспектів для додатків Spring. Він також підтримує програмування метаданих у Spring.
15) Що таке інтерфейс BeanFactory?
Інтерфейс фабрики компонентів використовується для забезпечення конфігураційної основи для створення об’єктів і базових функцій щодо керування об’єктами.
16) Вкажіть відмінності між ApplicationContext і BeanFactory навесні?
- ApplicationContext дозволяє існувати більше ніж один конфігураційний файл, тоді як BeanFactory дозволяє лише один.
- ApplicationContext може виводити події на компоненти, зареєстровані як слухачі. Ця функція не підтримується BeanFactory.
- ApplicationContext також надає підтримку для застосування подій життєвого циклу, повідомлень інтернаціоналізації та перевірки, а також надає такі послуги, як інтеграція EJB, віддалений зв’язок, доступ до JNDI та планування. Ці функції також не підтримуються Bean Factory.
17) Що таке автоматична проводка?
Autowiring використовується для побудови зв’язків між компонентами, що співпрацюють. Контейнер Spring може автоматично розпізнавати співавторів для компонентів.
18) Які існують різні режими автоматичного підключення?
Autowiring має п'ять різних режимів:
- №: немає автодроту
- по імені: Автоматичне підключення, яке можна виконати за назвою властивості
- за типом: тип властивості як autowired
- конструктор: Він схожий на byType, і його властивість знаходиться в конструкторі
- автовизначення: Spring дозволяє вибирати автоматичне підключення за типом або конструктором
19) Як почати користуватися пружиною?
Щоб почати весну, потрібно виконати наступні кроки:
- Завантажте Spring і залежний від нього файл із сайту spring.
- Створіть контекст прикладної програми xml, щоб визначити компоненти та їх залежності
- Інтеграція xml контексту програми з web.xml
- Розгорніть і запустіть програму
20) Які існують методи життєвого циклу бобів?
Є два важливі методи життєвого циклу Bean:
- Налаштування – викликається, коли bean завантажується в контейнер
- Teardown – викликається, коли bean вивантажується в контейнер
21) Які є різні типи подій слухачів?
Нижче наведено різні типи подій слухачів:
- ContextClosedEvent – Ця подія викликається, коли контекст закрито.
- ContextRefreshedEvent – Ця подія викликається, коли контекст ініціалізується або оновлюється
- RequestHandledEvent – Ця подія викликається, коли веб-контекст обробляє запит
22) Як відрізнити одиночний компонент від прототипу?
Singleton означає, що для кожного екземпляра об’єкта визначено лише один компонент, тоді як Prototype означає одне визначення для кількох екземплярів об’єкта у Spring.
23) Які є типи впровадження залежностей?
Spring framework підтримує два типи впровадження залежностей:
- Ін'єкція сетера
- Інжекція конструктора
24) Написати про контейнерний модуль Core?
Модуль контейнера ядра відповідає за базову функціональність пружинного фреймворку. Весь фреймворк Spring створено на основі цього модуля.
25) Що таке модуль AOP?
Цей модуль AOP використовується для програми з підтримкою Spring. Альянс AOP надав підтримку для забезпечення сумісності між Spring та іншими фреймворками AOP.
Він наказує spring додати анотації до вихідного коду та розповідає, як застосовувати аспекти.
Запитання для весняної співбесіди MVC для досвідчених
26) Що таке AOP Alliance?
AOP alliance — це проект із відкритим кодом, спрямований на сприяння прийняттю AOP. Метою альянсу AOP є визначення спільного набору компонентів та інтерфейсів для покращення сумісності між різними реалізаціями AOP.
27) Що називається конфігураційним файлом spring?
Конфігураційний файл Spring є файлом XML і містить інформацію про клас. Він також описує, як ці класи налаштовані та взаємодіють один з одним.
28) Які є різні типи Autowire?
Існує чотири різні типи автоматичного проводу:
- byName
- за типом
- конструктор
- AutoDetect
29) Які існують типи керування транзакціями, які підтримує Spring?
Нижче наведено типи керування транзакціями, які підтримує Spring:
- декларативний
- програмно
30) Коли використовується декларативне та програмне управління транзакціями?
Якщо існує лише невелика кількість транзакційних операцій, рекомендується використовувати програмне керування транзакціями. Але якщо потрібно виконати велику кількість транзакційних операцій, перевагу надається декларативному управлінню транзакціями.
31) Що таке МОК?
IOC (шаблон інверсії керування) також відомий як впровадження залежностей. IOC спрямовує програмістів зобразити, як створювати об’єкти, а не створювати їх насправді. Але в цьому шаблоні проектування це керування надано асемблеру, і асемблер створить екземпляр необхідного класу, якщо це необхідно.
32) Напишіть про різні типи подій, пов’язаних із слухачем?
Різні типи подій, пов’язаних зі слухачами:
- ContextRefreshedEvent – Це викликається, коли контекст оновлюється або ініціалізується.
- RequestHandledEvent – Це викликається, коли веб-контекст обробляє запит.
- ContextClosedEvent – Це викликається, коли контекст закривається.
33) Що таке аспект?
Аспект також називається журналюванням, яке потрібне для всієї програми. Ведення журналу або аспект — це наскрізна функція в програмі, яка використовує AOP.
34) Що таке Joinpoint?
Точка, де аспект може бути введений у програму, відома як точка з’єднання. Це може бути поле, яке змінюється, метод, який викликається, або навіть виняток. У цих точках можна додати код нового аспекту, щоб представити нову поведінку програми.
На цьому етапі код аспекту можна вставити в звичайний потік програми, щоб змінити поточну поведінку.
35) Що називається порадою?
Порада підкаже додатку про нову поведінку, і це реалізація аспекту. Він вставляється в програму в точці з’єднання.
Порада - це реалізація аспекту. Це щось на кшталт повідомлення вашій програмі про нову поведінку. Зазвичай поради вставляються в програму в точках з’єднання.
36) Що таке Pointcut?
Pointcut використовується, щоб дозволити, де можна застосувати поради.
37) Що таке плетіння?
Плетіння використовується для створення нового проксі-об’єкта шляхом застосування аспектів до цільового об’єкта.
38) Яка різниця між singleton і prototype bean?
Синглтон Бін – Визначення одного компонента для одного екземпляра об’єкта на контейнер IOC Spring
Прототип Біна – Визначення одного компонента для будь-якої кількості екземплярів об’єктів на контейнер IOC Spring
39) У яких пунктах можна застосовувати плетіння?
Нижче наведено точки, де можна застосовувати плетіння:
- Час компіляції
- Час завантаження класу
- Час виконання
40) Які є різні типи AutoProxying?
Нижче наведено різні типи AutoProxying:
- BeanNameAutoProxyCreator
- DefaultAdvisorAutoProxyCreator
- Автопроксування метаданих
41) Як можна зробити боби єдиними чи прототипними?
Тег bean має атрибут під назвою «singleton». Компонент є одиночним, якщо його значення дорівнює TRUE, інакше компонент є прототипом.
42) Які класи використовуються для керування підключенням до бази даних?
Нижче наведено класи, які використовуються для керування підключенням до бази даних:
- Утиліти джерела даних
- Джерело SmartData
- Джерело абстрактних даних
- Джерело даних SingleConnection
- DriverManager DataSource
- TransactionAware DataSourceProxy
- DataSource TransactionManager
43) Опишіть DAO у Spring framework?
DAO використовується для забезпечення інтеграції Java підключення до бази даних і об’єктно-реляційне відображення об’єктів. DAO це Spring Framework забезпечує підключення до JDBC, сплячого режиму, JDO, JPA, спільного клієнтського інтерфейсу та Oracle.
44) Що таке автопроксування?
Автопроксування використовується для автоматичного створення проксі для користувачів Spring. Він надає такі два класи для підтримки автоматичного створення проксі:
- BeanNameAutoProxyCreator
- DefaultAdvisorAutoProxyCreator
45) Що таке автопроксування метаданих?
Автопроксування метаданих може бути виконано надихаючи, що може керуватися метаданими. Це визначається атрибутами рівня джерела та зберігає метадані у вихідному коді.
Це зберігає метадані в одному місці та в основному використовується для підтримки декларативних транзакцій.
46) Що таке «порада щодо кидків» навесні?
«Порада щодо кидків» визначає поведінку, коли виникає виняткова ситуація. Це інтерфейс і він не має методів, які потрібно реалізувати.
Клас, який реалізує цей інтерфейс, повинен мати метод із таким підписом:
- Void samplethrow (кинути планшет)
- Void samplethrow (Метод m, Object[] o, Object target, Throw tablet)
47) Які редактори використовуються у весняній роботі?
Різноманітні спеціальні редактори, надані Spring Framework:
- PropertyEditor
- URLEditor
- ClassEditor
- CustomDateEditor
- Редактор файлів
- LocaleEditor
- StringArrayPropertyEditor
- StringTrimmerEditor
48) Які переваги має пружинний каркас?
Переваги пружинного каркаса:
- Шаруваті Archiтектура
- Вмикає Plain Old Java Об’єктне (POJO) програмування, яке забезпечує безперервну інтеграцію та тестування
- Впровадження залежностей і інверсія керування, що спрощує JDBC
- Фреймворк з відкритим кодом, який можна використовувати в комерційних цілях
49) Як отримати доступ до Hibernate за допомогою середовища Spring?
Доступ до Hibernate можна отримати двома способами:
- Від IOC із зворотним викликом і HibernateTemplate.
- Застосувавши перехоплювач AOP і розширивши HibernateDaoSupport.
50) Які різні канали підтримує Spring 2.0?
Нижче наведено канали, які підтримуються Spring версією 2.0:
- Опитуваний канал
- Канал з можливістю підписки
- Канал PublishSubscribe
- Канал черги
- Пріоритетний канал
- Канал Рандеву
- Прямий канал
- Канал виконавця
- Охоплений канал
Запитання для весняної співбесіди MVC для 5+ років досвіду
51) Чому у Spring надають перевагу декларативному управлінню транзакціями?
Декларативне керування транзакціями має мінімальний вплив на код програми і, отже, є ідеальним легким контейнером.
52) Поясніть концепцію BeanFactory?
BeanFactory застосовує ідею фабричного шаблону, який використовує IOC, щоб відокремити залежності та конфігурацію програми від фактичного коду.
53) Які різні сфери застосування весняної квасолі?
Сфери дії spring bean: Singleton, prototype, request, session та global session.
54) Які всі способи доступу до Hibernate за допомогою Spring?
Є два способи отримати доступ до сплячого режиму за допомогою spring:
- Інверсія керування за допомогою шаблону Hibernate і зворотного виклику
- Розширення підтримки HibernateDAOS і застосування вузла перехоплювача AOP.
55) Як застосування розпірок можна інтегрувати з пружиною?
Є два варіанти застосування розпірок, які можна інтегрувати з пружиною:
Конфігурація Spring для керування bean-компонентами за допомогою плагіна ContextLoader і встановлення їхніх залежностей у файлі контексту spring
Візьміть компоненти, керовані Spring, явно за допомогою agetwebapplicationcontext()
56) Що таке інверсія керування (IOC)?
Інверсія керування (IOC) також називається ін’єкцією залежностей, яка є нічим іншим, як шаблоном проектування, який надає керування асемблеру класів. Загалом клас створює екземпляр іншого класу, якщо потрібно.
Але в цьому шаблоні проектування цей контроль було надано асемблеру, і асемблер створить екземпляр необхідного класу, якщо це необхідно.
57) Напишіть переваги використання IOC?
Основні переваги впровадження залежностей або IOC полягають у тому, що воно зменшує кількість кодування, необхідного для програми. Це дозволяє тестувати програму швидко та легко, оскільки не потрібен механізм пошуку JNDI або одиночних елементів. Контейнери IOC також підтримують відкладене завантаження та швидке встановлення служб.
58) Що таке Inner bean? У чому недолік внутрішнього боба?
Якщо елемент компонента безпосередньо вбудовано в тег властивостей під час підключення компонентів, тоді компонент називається внутрішнім компонентом. Його недолік в тому, що він не піддається повторній обробці.
59)Які різні типи ін'єкцій навесні?
Існує три типи ін'єкцій навесні:
- Ін'єкція сетера
- Інжекція конструктора
- Геттер або впровадження методу
60) Які переваги пружинної рамки?
Ось переваги пружинного каркаса:
- Легкий контейнер у порівнянні з контейнерами j2EE
- Вбудований веб-фреймворк MVC
- Створює слабозв'язані програми
- Підтримує аспектно-орієнтоване програмування, наприклад журналювання, транзакції та безпеку
- Конфігурація виконана у форматі XML, який легко написати та зрозуміти
61) Які є типи порад?
Існує п'ять видів порад:
- Перед порадою
- Після повернення поради
- Після кидання рад
- Нарешті порада
- Навколо поради
62) Те, що називається PreparedStatementCreator?
ПідпорядкованийдержавнийCreator є одним із найбільш часто використовуваних інтерфейсів для запису даних до бази даних. createPreparedStatement() — це метод, який можна використовувати для створення та повернення PreparedStatement з аргументу Connection, а обробка винятків виконується автоматично. Коли цей інтерфейс реалізовано, інший інтерфейс SqlProvider також може бути реалізований, який має метод під назвою getSql(). Цей метод корисний для надання рядків sql до JdbcTemplate. Він не обробляє SQLExceptions.
63) Що таке SQLProvider?
SQLProvider викликає лише один метод getSql()
і це реалізовано за допомогою PreparedStatementCreator реалізатори. В основному використовується для налагодження.
64) Написати про BatchPreparedStatementSetter?
BatchPreparedStatementSetter використовується для оновлення кількох рядків за один раз, вони можуть використовувати BatchPreparedStatementSetter. Цей інтерфейс пропонує два методи
- setValues( PreparedStatement ps, int i) створює виняткову ситуацію SOL
- int getBatchSize
65) Який найкращий метод використання JDBC у Spring?
Якщо JDBC використовується з класом шаблону під назвою JdbcTemplate, це забезпечує кращу продуктивність.
66) Які винятки створюють класи DAO у Spring?
У весняних класах DAO створюється лише SQLException.
67) Поясніть переваги використання модуля DAO?
Код бази даних можна підтримувати чистим і простим за допомогою модуля DAO. Це допомагає запобігти проблемам, які виникають через погану обробку закриття ресурсів бази даних. Крім того, модуль DAO використовує модуль AOP, щоб дозволити об’єктам у додатку Spring використовувати служби керування транзакціями.
68) Назвіть важливі реалізації ApplicationContext, які використовуються в рамках spring?
До них відносяться:
- ClassPathXmlApplicationContext
- FileSystemXmlApplicationContext
- XmlWebApplicationContext
69) Як bean додається до програми Spring?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"> <beans> <bean id="foo"/> <bean id="bar"/> </beans>
Тег bean має атрибут ID, який зберігає назву bean, і атрибути класу, які вказують повну назву класу.
70) Що таке модулі інтеграції ORM?
Інструмент об’єктного/реляційного відображення (ORM) підтримується Spring над прямим JDBC шляхом реалізації модуля ORM. Spring може приєднуватися до різних важливих фреймворків ORM, включаючи JDO, iBATIS SQL Maps і Hibernate.
71) Згадайте та поясніть типи Порад навесні?
Різновидами порад є:
- Перед порадою: Порада, яка виконується до точки з’єднання, називається «порадою перед».
- Після повернення поради: Порада, яка виконується після звичайного завершення точки з’єднання, називається «порадою після повернення».
- Після кидання поради: Порада, яка виконується тільки якщо метод завершується ненормально через викидання винятку, називається «порадою після викидання».
- Після (нарешті) поради: Порада, яка виконується незалежно від того, як завершується точка з’єднання, називається «після остаточної поради».
- Поради навколо: Порада, яка межує з точкою з’єднання, наприклад, виклик методу, називається «порадою навколо». Це можна використовувати для виконання спеціальних дій до і після виклику методу.
72) Що таке веб-модуль?
Веб-модуль дозволяє створювати веб-додаток без XML. Для використання веб-модуля необхідно налаштувати файл web.xml.
73) Що таке DataAccessException?
DataAccessException є винятком RuntimeException. Це неперевірений виняток. Користувача не можна змусити обробляти такі винятки.
74) Що таке XMLBeanFactory?
Весна включає кілька додатків Bean factory. З них org.springframework.beans.factory.xml.XmlBeanFactory є дуже важливим. Він завантажує компоненти на основі визначень, що зберігаються у файлі XML. Для створення XmlBeanFactory конструктору передається java.io.InputStream. InputStream надає XML на завод. Наприклад, для отримання bean, метод getBean() викликається шляхом передачі імені потрібного bean.
MyBean helloBean = (MyBean) factory.getBean("helloBean");
75) Назвіть клас винятків, який пов’язаний з винятками, створеними програмами?
Це DataAccessException, наданий org.springframework.dao.DataAccessException
76) Згадайте типи lOC (ін’єкції залежності)?
Різні типи loC: –
- Ін'єкція сетера: За допомогою JavaВластивості бобів.
- Ін'єкція конструктора: Залежності задаються у вигляді параметрів конструктора.
- Ін'єкція інтерфейсу: За допомогою інтерфейсу виконується ін’єкція.
З цих трьох лише конструкція та сетер використовуються навесні.
77) Які важливі методи життєвого циклу бобів?
Загалом існує два методи життєвого циклу компонента. Перший метод — це метод налаштування, який викликається під час завантаження bean-компонента в контейнер. Другий — коли зерно вивантажується з контейнера, і цей метод називається розбиранням.
78) Як можна анулювати стандартні методи життєвого циклу компонентів?
Тег bean має два корисні атрибути, які можна використовувати для визначення спеціальних методів ініціалізації та знищення.
Наприклад, два нові методи forSetup і forTeardown можна додати до класу Foo таким чином:
<beans> <bean id="bar" init-method="forSetup" destroy="forTeardown"/> </beans>
79) Що таке a Target?
Ціль — це рекомендований клас. Цей клас може бути або класом, до якого ми хочемо додати спеціальну поведінку, або класом третьої сторони. Цільовий клас може зосередитися на своїй головній проблемі, використовуючи концепції AOP, незалежно від будь-яких порад, які застосовуються.
80) Поясніть термін проксі?
Термін проксі стосується об’єкта, який створюється застосуванням поради до цільового об’єкта.
81) Що таке наскрізне занепокоєння та занепокоєння у весняному AOP?
- Наскрізне занепокоєння: Це проблема, яка стосується всієї програми та впливає на всю програму. Наприклад, безпека, ведення журналів і передача даних є проблемами, які потрібні майже в кожному модулі програми.
- Занепокоєння: Концерн — це поведінка, яку ми хочемо мати в модулі програми. Проблеми, які нас цікавлять, визначають наше занепокоєння.
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)