top 48 spring interview questions
Списък с най-често задаваните въпроси и отговори за пролетното интервю, които да ви помогнат да се подготвите за предстоящото интервю:
В тази статия ще научим за най-популярната и широко използвана Spring Framework. Включва Spring Framework и Spring MVC въпроси за по-свежи и опитни професионалисти. Преди обаче да навлезем дълбоко в пролетната част, нека разберем какво е рамка и защо допълнително изискваме рамка?
Простата рамка може да се разбира като определена граница, която вече е изградена за други неща, които идват и се натрупват, за да извършат определено действие.
В софтуерната терминология Framework може да бъде дефиниран като определено приложение, което вече е разработено и съдържа много функционалности и функции, за да поддържа всяко приложение, което е в режим на разработка.
Пролетна рамка
Рамката съдържа няколко готови класа и компоненти, които разработчикът не е необходимо да създава за разработване на приложение, като по този начин намалява много сложността на кода и прави приложението лесно за поддръжка. Освен това спестява време, поради което се постига намаляване на разходите.
Пролет Framework е известен като лека рамка поради малкия си размер и висока ефективност. Той е с отворен код и по този начин осигурява силна инфраструктура за разработване на Java приложения по лесен и лесен начин. Той осигурява поддръжка на различни други рамки като Hibernate, Struts, EJB и др.
Той е разделен на определени модули за постигане на множество неща едновременно. Пролетните модули включват основен модул, уеб модул, модул за интеграция на данни, модул за изпитване, модул AOP и др. Всеки модул изпълнява своята собствена цел според изискванията на разработчиците.
В тази статия ще разгледаме всички важни теми през пролетта, които са важни от гледна точка на интервюто.
Ще разгледаме какво представлява Spring Framework, типовете му модули, концепцията за впръскване на зависимост и обръщане на управлението, bean и неговия жизнен цикъл, различни обхвати на bean, концепция за автоматично свързване, обработка на събития през пролетта, Spring AOP, управление на транзакции през Spring , пролетен MVC и неговият архитектурен поток.
Също така ще разгледаме важната анотация, използвана в различни модули за пружини и конфигурации, както и за пружинен контейнер.
Тук са обяснени някои кодови примери за много важни понятия и те ще ви помогнат да обясните подробно. Бяха дадени допълнителни връзки за справка с примерния пример на Spring MVC. Обяснихме концепцията за диспечерски сървлет по много изискан начин.
С този отчетлив отговор от точка до точка ще можете да отговорите уверено на повечето въпроси от интервюто.
Най-популярните пролетни интервюта Въпроси и отговори
Нека разгледаме най-често задаваните въпроси за рамково интервю с подробни отговори и примери.
В # 1) Какво е рамка? Обяснете пролетната рамка.
Отговор: Framework е вече изграден софтуер, който помага на разработчиците да добавят повече функционалности към своите приложения, като използват вече изградени класове и библиотеки.
Spring Framework е рамка за инжектиране на зависимости, която помага на разработчиците да разработват приложения, базирани на Java. Spring е рамка с отворен код за Java Enterprise.
В # 2) Защо Spring се предпочита пред останалите рамки?
Отговор: Пролетта е за предпочитане пред останалите рамки поради следните характеристики:
- Много малък размер и лек
- Помага за постигане на свободно свързани приложения чрез Inversion of Control.
- AOP поддръжка
- MVC рамка
- Добра функция за управление на транзакции
- Пролетен контейнер
- Обработка на изключения
В # 3) Категоризирайте различните видове модули в Spring Framework.
Отговор: The пет основни модула в Spring Framework са посочени по-долу:
- Spring Core Container, който включва ядро, боб, контекст и език на изразяване.
- AOP и аспекти.
- Модул за интеграция на данни, който включва JDBC, OXM, ORM, модули за транзакции и др.
- Уеб модул, който включва уеб, сървлет, подпори и портлет.
- Тест
В # 4) Обяснете пролетния конфигурационен файл.
Отговор: XML файл съдържа цялата информация за класовете, заедно с процеса им на конфигуриране и как тези класове са взаимодействали с другите класове.
Въпрос # 5) Обяснете концепцията за инжектиране на зависимост.
Отговор: Първо, инжектирането означава прехвърляне на зависимостта към всеки зависим обект.
Инжектирането на зависимост е вид дизайн, който помага да се разработи слабо свързано приложение. Това е изпълнение на инверсия на контрол, което помага при решаването на зависимости в приложение.
Той избягва създаването на самообекти и по-скоро насочва как обектите трябва да се създават чрез конфигурации и тогава IOC решава кои услуги трябва да бъдат съпоставени от кои компоненти.
Инжектирането на зависимост е основната характеристика на Spring Framework.
yahoo! поща най-добрата услуга за електронна поща
В # 6) Какви са различните видове инжектиране на зависимост? Обяснете ги.
Отговор: Има два вида инжектиране на зависимост. Те са както следва:
- Впръскване на зависимостта на конструкцията - Постига се, когато контейнерът Spring извиква конструктор с аргументи и всеки има някаква зависимост от другия клас.
- Инжектиране на зависимост на базата на сетер - Постига се, когато контейнерът Spring извиква метода за задаване на боб след извикване на конструктор без аргументи за създаване на екземпляр на боб.
В # 7) Кое е добре да се използва - Конструктор или базирана на Setter зависимост?
Отговор: И двата вида инжектиране на зависимост могат да се използват съответно въз основа на ситуациите. Правилото на палеца е, че за задължителна зависимост се използва инжектиране на зависимост на базата на конструктор, докато за незадължителна зависимост се използва инжектиране на зависимост, базирано на сетер.
В # 8) Какви са предимствата на инверсията на контрола?
Отговор: Има няколко предимства на IOC и няколко от тях са споменати по-долу:
- IOC е способен да намали сложността на кода чрез намаляване на кода в приложението.
- Използвайки IOC в приложението, тестването става по-лесно и лесно, тъй като не са необходими справки и единични тонове.
- Разхлабеното свързване се постига чрез IOC и това от своя страна прави кода по-поддържаем.
- IOC поддържа ранна инстанция и късно зареждане на услуги.
Въпрос # 9) Обяснете концепцията за AOP.
Отговор: AOP е съкращение от Aspect Oriented Programming. Това е друг подход на програмиране, който помага на разработчиците да преструктурират поведението на отговорности като Управление на транзакции и регистриране.
AOP се прилага за междусекторни проблеми, т.е.дефиницията се предоставя на едно място и функционално може да се използва на много места с помощта на скрипта.
Въпрос # 10) Обяснете използването на Spring Container.
Отговор: Той е основната част и гръбнакът на Spring framework. Контейнерът Spring помага за създаването на обекти, комбинирането на обектите заедно, управлението на техните конфигурации и завършване на жизнения цикъл на създаване, внедряване и унищожаване.
Контейнерът Spring използва помощта на Dependency Injection за управление на компонентите, които изграждат приложението.
В # 11) Какви са различните видове IOC контейнер?
Отговор: IOC контейнерът е от два вида, както е споменато по-долу:
- Фабрика за зърна - Това е прост контейнер и осигурява поддръжка за инжектиране на зависимости.
- Spring ApplicationContext - Това е усъвършенстван контейнер, който добавя сложни функции като декодиране на текстови съобщения от файлове и е в състояние да публикува събития на слушателите.
В # 12) Какво е изпълнението на контейнера Bean Factory?
Отговор: Класът XmlBeanFactory е най-важната реализация на фабриката за зърна и е полезен за четене на данни от XML файловете.
В # 13) Какво е изпълнението на контейнера ApplicationContext?
Отговор: Някои от най-често използваните контейнери ApplicationContext включват FileSystemXmlApplicationContext, ClassPathXmlApplicationContext и WebXmlApplicationContext и др.
В # 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); } }
Въпрос # 15) Какви са компонентите в Bean Definition?
Отговор: По същество дефиницията на боб съдържа метаданните за конфигурацията, които се използват от контейнера Spring, за да се знаят подробности като, процес на създаване на боб, жизнения цикъл на боб и зависимости на боб.
В # 16) Какви са начините, чрез които метаданните за конфигурация могат да бъдат предоставени на контейнера Spring?
Отговор: Конфигурационните метаданни могат да бъдат предоставени на Spring Container по три начина, т.е. чрез XML базиран конфигурационен файл, базирана на анотации конфигурация и Java-базирана конфигурация.
В # 17) Какъв е синтаксисът за добавяне на боб в приложението Spring?
Отговор: Синтаксис:
В # 18) Какви са типовете обхват на боб?
Отговор: Обхватът на Bean може да бъде дефиниран като единичен и прототип, заявка, сесия, глобална сесия и т.н.
- Прототипът се декларира, когато всеки път се изисква нов екземпляр на боб.
- Singleton се декларира, когато всеки път се използва един и същ екземпляр на боб.
- Заявката се използва за обхвата на HTTP заявката.
- Сесията се използва за обхвата на HTTP сесията.
- Глобална HTTP сесия обхваща боб към глобалната HTTP сесия.
Syntax:
В # 19) Кой е обхватът на боб по подразбиране през пролетта? Освен това синхронизирани ли са?
Отговор: Обхватът на боб по подразбиране през Spring е Singleton. Освен това те не са синхронизирани, т.е.не са безопасни за нишки.
В # 20) Какъв е жизненият цикъл на боб през пролетта?
Отговор: Жизненият цикъл на Spring Bean следва определени стъпки, както е споменато по-долу:
- Instantiation - Пролетният контейнер от XML файла намира дефиницията на боб и след това бобът се екземпляри.
- Свойства за попълване - Spring контейнерът запълва всички свойства, споменати в дефиницията на боб с помощта на инжектиране на зависимост.
- Задаване на името на Bean.
- Настройка на фабриката за зърна.
- Предварителна инициализация и инициализация на боб.
- След инициализация на боб.
- Унищожете зърното, като извикате метод delete ().
В # 21) Какво имате предвид под вътрешен фасул?
Отговор: Bean, който е дефиниран вътре в елемента свойство или конструктор, се нарича вътрешен bean.
Не са необходими конкретни ID или име за вътрешен компонент, всъщност контейнерът Spring избягва тези стойности заедно с дефиницията на обхвата. Казват, че вътрешните зърна са анонимни и обхватът им винаги се определя като прототипи.
Въпрос # 22) Какви са начините за вмъкване на концепцията за колекция през пролетта?
Отговор: По принцип има четири елемента за събиране, които да се вмъкнат през пролетта.
Те са:
- елемент - Той свързва набора от стойности, като елиминира дубликатите от тях.
- елемент - Полезно е да се вмъкват или инжектират стойности и също така позволява дублирани стойности.
- елемент - Използва се за вмъкване на двойка ключ или име-стойност, която може да бъде от всякакъв тип.
- елемент - Използва се за вмъкване на двойки ключ или име-стойност, но видът трябва да бъде само низът.
Въпрос # 23) Обяснете концепцията за автоматично свързване.
Отговор: Автоматичното свързване е основна концепция в Spring Spring. Използва се за имплицитно инжектиране на зависимост от обект чрез използване на инжектор, базиран на сетер или конструктор. Автоматичното свързване работи само с референтни типове, така че не е полезно за инжектиране на стойности за примитивни и низови типове.
Най-доброто предимство на autowire е, че разработчиците трябва да пишат по-малко код, тъй като за инжектирането на зависимости се грижи autowire. Освен това програмистът не е контролирал процеса тогава.
Syntax:
Препоръчително четене => Пролетна автоматична анотация, Име на Autowire на Spring Bean
В # 24) Обяснете различните режими на автоматично свързване.
Отговор: Автоматичното свързване се предлага с пет режима, които насочват пружинния контейнер за използване на функцията за инжектиране на зависимост.
- Няма режим - Извиква се като настройка по подразбиране и предполага деактивиране на автоматично свързване и трябва да се използва изричен боб за референтно окабеляване.
- по име - Автоматичното свързване може да се извърши по име на имот. Spring контейнерът търси XML конфигурационния файл за зърната, чийто атрибут autowire е зададен на byName.
- byType - Автоматично окабеляване може да се извърши по тип собственост. Spring контейнерът търси XML конфигурационния файл за зърната, чийто атрибут autowire е зададен на byType.
- Строител - Почти същото е с byType, но типът е приложим за аргументи на конструктор, ако в контейнера не е намерен тип аргумент на конструктор, тогава се появява грешка.
- Автоматично откриване - Отнася се за поведението на пролетта, показващо своя приоритет за избор. Първо, Spring избира автоматично свързване с помощта на конструктора, ако това не се случи, тогава променя приоритета на byType.
В # 25) Има ли някакви ограничения при автоматичното свързване? Ако да, обяснете.
Отговор: Да, има някои ограничения на автоматичното свързване, които са посочени по-долу:
- Винаги има възможност за отмяна.
- Разработчикът няма да може да свързва автоматично примитивни и Spring свойства.
- Автоматичното свързване става сложно, когато се използва в големи приложения в сравнение с изрично окабеляване.
В # 26) Какво е свързване на анотации и как да го включим?
Отговор: Алтернативното използване на XML е анотации, при които разработчиците преместват цялата конфигурация в един клас с помощта на анотации за определен клас или метод.
Включва се във файла Spring Configuration чрез деклариране.
В # 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; } }
В # 28) Каква е ползата от @Autowired анотацията?
Отговор: Помага за по-добър контрол и разбиране как и къде трябва да се постигне автоматично свързване. Той може да се използва за автоматично свързване на зърно за всеки метод на настройка, свойство или конструктор.
най-добрият безплатен конвертор на YouTube в mp3
Пример:
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(); } }
В # 29) Каква е ползата от анотацията @Qualifier?
Отговор: Използва се главно, когато разработчикът е длъжен да създаде много зърна от същия тип и иска да свърже само един от тях със свойството, в този сценарий @Qualifier с @Autowired се използва за отстраняване на объркване и определяне на точния боб, който трябва да бъде свързан .
В # 30) Как се обработва събитието през пролетта?
Отговор: Обработката на събития се постига чрез клас ApplicationEvent и интерфейс ApplicationListner.
Когато бобът внедри ApplicationListner, тогава ApplicationEvent се генерира в ApplicationContext и уведомява, че бобът е генериран.
В # 31) Какви са примерите за стандартни пролетни събития?
Отговор: Има много стандартни пролетни събития, обслужващи съответната цел и малко от тях са ContextStartedEvent, ContextRefreshedEvent, ContextStoppedEvent, ContextClosedEvent, RequestHandledEvent и др.
В # 32) Какво означава Съвместната точка?
Отговор: Той обозначава конкретна точка, където AOP аспектът може да бъде включен. Това е оригиналното място в приложението, където могат да бъдат предприети някои действия, използвайки AOP рамката.
Въпрос # 33) Какво представлява шаблонът JDBC и как да се използва през пролетта?
Отговор: Шаблонът JDBC е шаблон, предоставен от Spring рамката за по-ефективно използване на JDBC.
JDBC шаблонът обикновено се използва за преобразуване на данни от база данни в обекти, изпълнение на подготвени и извикващи се изрази, а също така поддържа обработка на грешки за база данни.
Въпрос # 34) Какво представлява управлението на транзакции през пролетта? Обяснете различните видове управление на транзакции.
Отговор: Транзакцията е основно някаква операция, извършена върху някои данни в базата данни. Управлението на транзакциите попада под системата за управление на релационна база данни и се използва за осигуряване на етичност и последователност на данните.
Основното предимство на Transaction Management е, че поддържа декларативно и програмно управление на транзакции и API като Hibernate, JTA и JDBC чрез правилна интеграция.
как да отворя bin файл в Windows 10
Има два вида Управление на транзакции, които са споменати по-долу:
- Програмно управление на транзакции се използва за подпомагане на транзакцията по отношение на кодиране или скриптове.
- Декларативно управление на транзакции се използва за изолиране на бизнес код и транзакции.
В # 35) Кое е най-често използваното управление на транзакции?
Отговор: Декларативното управление на транзакции се използва широко от разработчиците.
Q # 36) Обяснете Spring MVC framework.
Отговор: MVC означава Модел, Изглед и Контролер. Spring MVC framework се използва за разработване на уеб приложения с добър архитектурен поток и конфигурации. Той е изключително гъвкав в интеграция с другите рамки.
Въпрос # 37) Обяснете Spring MVC Architecture.
Отговор: Spring MVC архитектурата се основава на Model, View и Controller.
(изображение източник )
Горната връзка има и прост пример за пълния поток Spring MVC за справка.
Потокът на Пролетната архитектура протича по следния начин :
- Искането се получава от диспечерския сървлет.
- Диспечерският сървлет изпраща заявката до картографирането на манипулатора, което предоставя отговора по отношение на името на класа на контролера.
- Сега заявката се изпраща на контролера от диспечерския сървлет, следователно контролерът обработва заявката и връща обекта на изглед на модел като отговор на диспечерския сървлет.
- Отново диспечерският сървлет изпраща заявката за преглед на резолвера, за да получи правилната страница за преглед.
- И накрая, диспечерският сървлет изпраща получения модел на страницата на браузъра, за да покаже резултата.
@Controller и @RequestMapping са двете основни пояснения, които се използват в Spring MVC поток.
Въпрос # 38) Каква е ползата от диспечерския сървлет?
Отговор: Dispatcher Servlet се използва за обработка на всички входящи HTTP заявки и отговори от клиента. Като цяло той контролира всички комуникации от манипулатора до контролера, за да прегледа резолвера до действителната страница на изгледа.
Въпрос # 39) Обяснете използването на @Controller и @RequestMapping анотации в Spring MVC.
Отговор:
@Controller - Обозначава конкретния клас, който се държи като контролер.
@RequestMapping - По принцип се използва за картографиране на URL към целия клас или към всеки конкретен метод.
Въпрос # 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 } }
Тук не се създава екземпляр, така че зависимостта не се създава, поради което кодът става по-гъвкав и свободно свързан.
В # 41) Обяснете съветите и техните видове.
Отговор: Всяко действие, предприето от AOP, се нарича Съвет.
Има пет вида съвети, както е споменато по-долу:
- Преди съвет.
- След съвет.
- След връщане на съвет.
- Около съвети.
- Хвърля съвети.
В # 42) Какви са различните видове обектно релационно картографиране, което Spring поддържа?
Отговор: Spring поддържа ORM като Hibernate, IBatis, TopLink, Java Data Object, OJB и JPA и др.
Въпрос # 43) Защо Spring се предпочита пред рамките или основните предимства на Spring Framework?
Отговор: Пролетта е предпочитана пред рамката поради няколко причини. Малко от тях са споменати по-долу:
- Spring решава много сложни проблеми при разработването на приложения чрез своите подмодули като ядро, мрежа, достъп до данни, тест и т.н.
- Spring предлага класове POJO за развитие, което от своя страна намалява стреса.
- Мощна интеграция с другите рамки.
- Добро тестване на приложения.
- Функция за управление на транзакциите и модулност.
Q # 44) Какво имате предвид под Spring Batch?
Отговор: Spring batch също е лека рамка, създадена в подкрепа на разработването на стабилни пакетни приложения за корпоративната система.
Spring batch подобрява производителността, подхода за разработване и прави много по-лесни някои функции, които потребителите са научили през пролетта.
Въпрос # 45) Каква е основната употреба на Spring batch framework?
Отговор: Spring batch се използва главно за четене и запис на файлове, както и за извършване на определени операции в базата данни като четене или запис, трансформация на данни, създаване на отчети, също импортиране и експортиране на данни и др.
Q # 46) Обяснете пролетната архитектура на партидата.
Отговор: Spring batch архитектурата включва главно три компонентни слоя, т.е.приложение, ядро и инфраструктура.
Приложението се състои от задачи за скриптове и партиди, създадени от разработчиците чрез пролетната партида. Ядрото съдържа всички важни и необходими класове, които са необходими за стартиране и контрол на групова работа. И накрая, инфраструктурата се справя както с приложението, така и с ядрото, включително услуги, четци, писатели и т.н.
Q # 47) Обяснете Tasklet в Spring Batch.
Отговор: Tasklet е интерфейс, който често се призовава да изпълнява една задача само като почистване или изтриване или настройка на ресурси по време на изпълнение.
Q # 48) Обяснете принципа на работа на Spring Batch.
Отговор: Пролетната партида работи главно на четири стъпки, както е споменато по-долу:
- Първо, step-it насочва работата да свърши съответната си работа.
- Той има itemReader интерфейс за предоставяне на данните.
- Той има интерфейс itemProcessor за трансформация на данни.
- И накрая, той има itemStreamWriter интерфейс за генериране на желания резултат.
Заключение
Надяваме се, че тази статия ще ви даде ясна информация за пролетната рамка. Той обясни Spring и неговите характеристики, приложенията, в които се използва Spring, и защо е от съществено значение за разработването на приложения.
Модули на пружини, инжектиране на зависимост, обръщане на управление, управление на транзакции, ориентирано към аспекти програмиране, концепция за свободно свързване, архитектура на Spring MVC, важни анотации, компоненти и автоматично свързване.
Тук са включени всички важни въпроси за пролетното интервю, обхващащи всички гореспоменати теми. Винаги е препоръчително да обяснявате всяка концепция с помощта на пример за код, който дава по-добра разбираемост на интервюиращия.
Надявам се тази статия да ви помогне да изчистите интервютата си, всичко най-добро!
Препоръчително четене
- Интервюирайте въпроси и отговори
- Някои интересни въпроси за интервю за тестване на софтуер
- 20 селективни QA интервюта за изчистване на интервюто през 2021 г.
- Въпроси и отговори за интервю за ETL тестване
- Топ 25 въпроса за интервю за Perl, които трябва да подготвите през 2021 година
- Топ 25 въпроса за интервю за софтуерно инженерство (ПОСЛЕДНО 2021)
- Топ 36 въпроси за интервю за Дженкинс (За 2021 г.)
- Топ 12 въпроса за интервю за Mockito (подигравателно рамково интервю)