Top 35 de întrebări și răspunsuri la interviul de primăvară: Ghidul final 2022

Publicat: 2021-01-08

Aveți un interviu viitor legat de Spring Framework? Poate că ați ajuns pe această pagină pentru că căutați cele mai bune întrebări pentru interviul Spring Framework . Pe blogul nostru, vom discuta despre cele mai adresate întrebări și răspunsuri la interviul de primăvară.

Dacă treci prin acestea, sunt șanse să ai rezultate incredibile la interviu. Înainte de a începe, permiteți-ne să vă oferim o scurtă prezentare a cererii generale pentru Spring Framework pe piața actuală.

Citiți: Dezvoltatorii full stack solicită în India

Spring face ca limbajul de programare Java să fie mai rapid, mai simplu și mai sigur pentru toți. Obiectivul său principal este viteza, dar este simplu și productiv. Datorită acestui fapt, a devenit unul dintre cele mai populare framework-uri Java din lume. Bibliotecile sunt flexibile și de încredere. Este folosit în multe locuri, cum ar fi cumpărături online, mașini conectate și tehnologii mai inovatoare.

De asemenea, se laudă cu contribuțiile sale la marii giganți precum Amazon, Google și Alibaba. În plus, comunitatea de primăvară este imensă. Cuprinde toate grupele de vârstă și este foarte diversă. Veți găsi resurse grozave și asistență online pentru a trece la următorul nivel, ușurând călătoria.

Dacă ești un programator Java, Spring Framework este crucial pentru tine. Multe companii solicită programatorului să înțeleagă Spring Framework sau cel puțin să cunoască unele dintre modulele sale.

Iată câteva dintre cele mai importante întrebări și răspunsuri la interviul de primăvară pe care vă puteți aștepta să le pună intervievatorul dvs.

Cuprins

Întrebări și răspunsuri la interviul de primăvară 2020

Î.1 Care sunt diferitele versiuni ale Spring Framework pe care le puteți găsi și care sunt caracteristicile lor majore?

Cele trei versiuni sunt Spring 2.5, Spring 3.0 și Spring 4.0.

Spring 2.5 a fost prima versiune care a suportat adnotări. A fost lansat în anul 2007. Spring 3.0 a folosit upgrade-uri în Java5 și, în plus, a oferit ajutor pentru JEE6. A fost lansat doi ani mai târziu, în 2009. Spring 4.0 a fost principala variantă pentru a oferi suport complet pentru Java 8. A fost lansat în anul 2013.

Q.2 Descrieți sau definiți Cadrul Spring

Este o platformă Java cu sursă deschisă. Este folosit ca o opțiune pentru tehnologiile Java pentru întreprinderi grele. Pentru a spune în termeni simpli, simplifică dezvoltarea Java, deoarece este ușor. Dezvoltatorii pot dezvolta aplicații folosind Spring Framework și pot implementa chiar și pe computere cu memorie și resurse limitate ale procesorului. În plus, oferă suport pentru diverse alte cadre, inclusiv, dar fără a se limita la Tapestry, JSF, EJB, Hibernate, Struts și multe altele.

Citiți: Idei și subiecte de proiecte Full Stack

Î.3 Care sunt avantajele Cadrului de primăvară?

  • Spring Framework este o sursă deschisă și nu are nicio blocare a furnizorului.
  • Puteți folosi doar ceea ce aveți nevoie cu adevărat datorită arhitecturii stratificate pe care o folosește.
  • Spring Framework folosește POJO, ceea ce face testarea aplicațiilor mult mai ușoară.
  • Îl puteți folosi cu toate celelalte cadre ale Java cu Spring Frameworks. Nu impune restricții sau limitări.
  • Spring Framework este un cadru modular. Este foarte flexibil.

Î.4 Care sunt diferitele caracteristici ale Spring Framework?

  • Ușor: Spring Framework este ușor când vorbim despre transparența și dimensiunea sa.
  • Inversarea controlului: este principiul prin care fluxul de control al unui program este inversat. Aici, sursele externe cum ar fi serviciile, cadrul și alte componente controlează fluxul unui program în loc de programator.
  • Programare orientată pe aspecte: programarea orientată pe aspecte în Spring sprijină dezvoltarea de legături prin separarea serviciilor de sistem de logica de afaceri a aplicației.
  • Container: Containerul se află în centrul Spring Framework. Este containerul care creează obiectele, le leagă, le configurează și se ocupă de ciclul lor de viață complet, care este de la creare până la sfârșit.
  • Cadrul MVC: Cadrul aplicației web MVC al Spring Framework este ușor de utilizat și este configurabil. Puteți folosi alte cadre în loc să alegeți Spring MVC Framework.
  • Managementul tranzacțiilor: Spring Framework utilizează un strat de abstractizare generic pentru gestionarea tranzacțiilor. Puteți utiliza suportul pentru tranzacții de la Spring în medii cu mai puține containere.
  • Gestionarea excepțiilor JDBC: nu trebuie să gestionați în mod explicit excepțiile legate de baza de date. Spring JDBC Framework îl gestionează utilizând gestionarea excepțiilor JDBC.

Citiți: Întrebări de interviu pentru dezvoltatori Full Stack

Q.5 Câte module puteți găsi în Spring Framework? Numiți-le.

Puteți găsi douăzeci de module care sunt clasificate în Core Container, Web, Data Access/Integration, AOP (Aspect Oriented Programming), Instrumentation și Test.

Spring Core Container: După cum sugerează și numele, este containerul de bază al Spring Framework. Acesta cuprinde

  • Miez de primăvară
  • Fasole de primăvară
  • Spring Expression Language
  • Contextul de primăvară

Web: Acest strat oferă suport pentru crearea unei aplicații web. Acesta cuprinde următoarele module:

  • Web
  • Web – MVC
  • Web – Priză
  • Web – Portlet

Acces/Integrare la date: Acest nivel oferă suport pentru comunicarea cu baza de date. Acesta cuprinde următoarele module:

  • Conectivitate la baza de date Java – JDBC
  • Maparea relațională a obiectelor – ORM
  • Object XML Mappers – OXM
  • Serviciul de mesagerie Java – JMS
  • Tranzacţie

Programare orientată pe aspecte: în acest nivel, dezvoltatorii pot folosi puncte, sfaturi etc. pentru a decupla codul.

Instrumentare: Acest strat oferă suport implementărilor classloader și instrumentării clasei.

Test: Acest strat oferă suport pentru testarea cu TestNG și Junit.

De asemenea, puteți găsi și alte noduri diverse, cum ar fi:

Mesaje: Acest modul oferă asistență pentru STOMP. De asemenea, ajută ca model de programare de adnotări care este necesar în rutarea și procesarea mesajelor STOMP de la clienții WebSocket.

Aspecte: Acest modul oferă suport pentru integrarea cu AspectJ.

Î.6 Ce este un fișier de configurare Spring?

Practic este un fișier XML. Toate informațiile despre cursuri le găsiți în acest fișier. Acesta descrie în continuare modul în care aceste clase sunt configurate și cunoscute între ele. Fișierele de configurare XML sunt detaliate, așa că este necesar să le păstrați curate. În caz contrar, gestionarea lor devine dificilă dacă proiectul tău este mare.

Q.7 Descrieți diferitele componente ale unei aplicații Spring.

De obicei, o aplicație Spring cuprinde următoarele componente:

  • Interfață: Toate funcțiile sunt definite în interfață.
  • Clasa Bean: Puteți găsi proprietăți aici împreună cu funcțiile set și obține.
  • Programare orientată pe aspecte de primăvară (AOP): oferă funcționalitatea preocupărilor transversale.
  • Fișierul de configurare Bean: Acest fișier conține detaliile claselor și cum le puteți configura.
  • Program utilizator: Un program utilizator folosește funcția.

Q.8 Explicați diferitele moduri de utilizare a Spring Framework

Spring Framework poate fi folosit în mai multe moduri, cum ar fi:

  • Spring Framework poate fi folosit ca o aplicație web Spring cuprinzătoare.
  • Spring Framework poate fi folosit ca un cadru web terță parte, folosind Spring Frameworks de nivel mediu.
  • Spring Framework poate fi folosit pentru utilizare la distanță.
  • Spring Framework poate fi folosit ca Enterprise Java Bean, care poate include POJO-uri existente.

Î.9 Ce este containerul Spring IOC?

Containerul se află în centrul Cadrului de primăvară. Este containerul care creează obiectele, le leagă, le configurează și se ocupă de ciclul lor de viață complet, care este de la creare până la sfârșit.

Containerul Spring folosește Dependency Injection pentru a gestiona componentele care creează o aplicație. Containerul primește indicații pentru care obiecte să creeze, să se stabilească și să apeleze, citind metadatele de configurare date fie de adnotări Java, de cod Java, fie de un XML.

Î.10 Ce este o injecție de dependență?

În Dependency Injection, în loc să creați obiecte, pur și simplu le descrieți cum să le creați. Dezvoltatorii trebuie să descrie ce servicii sunt necesare pentru o anumită componentă în fișierul de configurare. Nu este nevoie să conectați direct serviciile la componentele din cod. Sunt conectate împreună de containerul Spring IoC.

Î.11 În câte metode se poate face Injecția de dependență?

Există trei moduri în care se realizează injectarea dependenței, cum ar fi:

  • Injecție de constructor
  • Setter Injectie
  • Injecție de interfață

Cu toate acestea, în Spring Framework, sunt folosite doar injecția de constructor și injecțiile de setter.

Q.12 Ce face ca injecția constructorului să fie diferită de injecția setterului.

Injecție de constructor Setter Injectie
Nu există injecție incompletă sau limitată. Poate exista o injecție incompletă sau limitată.
Nu anulează proprietatea setter. Ea suprascrie proprietatea constructorului.
Acesta creează o nouă instanță dacă se face vreo modificare. Nu creează nicio instanță nouă dacă se face o modificare.
Funcționează mai bine pentru o mulțime de proprietăți. Funcționează mai bine pentru mai puține proprietăți.

Î.13 Câte tipuri de containere IOC sunt disponibile în primăvară?

De obicei, puteți găsi două containere IOC, și anume:

  1. BeanFactory: BeanFactory este un fel de clasă de fabrică care cuprinde un grup de fasole. Instanțiază bobul ori de câte ori este solicitat de clienți.
  2. ApplicationContext: Interfața ApplicationContext este creată deasupra interfeței BeanFactory. Oferă o funcționalitate suplimentară, pe lângă cea oferită de BeanFactory.

Q.14 Spuneți-ne despre câteva diferențe dintre BeanFactory și ApplicationContext.

BeanFactory ApplicationContext
Este o interfață explicată în org.springframework.beans.factory.BeanFactory Este o interfață explicată în org.springframework.context.ApplicationContext
Utilizează inițializarea Lazy Utilizează inițializarea agresivă
Oferă în mod explicit un obiect resursă folosind sintaxa Construiește și gestionează singur obiectele de resurse
Nu ajută la internaționalizare Ajută la internaționalizare
Nu ajută la dependența bazată pe adnotări Ajută dependența bazată pe adnotări

Î.15 Care sunt câteva beneficii ale IoC?

Unele dintre beneficiile IoC sunt:

  • Acesta va reduce cantitatea de cod necesară în aplicația dvs.
  • Aplicația dvs. este mult mai ușor de testat, deoarece nu are nevoie de nici un singleton sau mecanisme de căutare JNDI în cazurile de testare unitară.
  • Încurajează cuplarea liberă cu efort minim și mecanismul cel mai puțin intruziv.
  • Ajută la instanțierea dornică și la încărcarea leneșă a serviciilor.

Q.16 Ce sunt fasolea de primăvară?

Spring Beans sunt obiectele care servesc drept coloană vertebrală a aplicației utilizatorului. Fasolea este controlată de containerul Spring IoC. Prin controlul acesteia, acestea sunt instanțiate, configurate, conectate și gestionate de un container Spring IoC. Bean-urile sunt create folosind metadatele de configurare pe care utilizatorii le furnizează containerului.

Q.17 Cum sunt furnizate metadatele de configurare containerului Spring?

Metadatele de configurare pot fi date containerului Spring într-unul din moduri:

  • Configurație bazată pe adnotări: se pot folosi adnotări pe clasa relevantă pentru a descrie cablarea bean-ului în clasa de componente în sine. Nu este setarea implicită. Deci, dacă doriți să-l utilizați, ar trebui să îl activați în fișierul de configurare Spring înainte de a-l putea folosi.
  • Configurație bazată pe XML: dependențele și serviciile cerute de beans sunt menționate în fișierele de configurare. Acestea sunt într-un format XML. Acestea cuprind multe definiții ale fasolelor și opțiuni de configurare specifice aplicației. În general, încep cu o etichetă de fasole.
  • Configurație bazată pe Java: caracteristicile principale din noul suport de configurare Java al Spring Framework sunt metodele adnotate @Bean și clasele adnotate @Configuration.

Q.18 Câte lunete bean acceptă Spring?

Acceptă cinci domenii care sunt:

  • Singleton: Acest lucru oferă spațiu pentru definirea bean-ului unei singure instanțe per container Spring IoC.
  • Prototip: Acest lucru oferă posibilitatea ca o singură definiție bean să aibă orice număr de instanțe de obiect.

Domeniile de mai jos sunt disponibile numai dacă utilizatorii folosesc un ApplicationContext conștient de web.

  • Solicitare: Aceasta oferă o definiție a bean-ului unei cereri HTTP.
  • Sesiune: Aceasta oferă spațiu pentru o definiție a bean-ului unei sesiuni HTTP.
  • Sesiune globală: Aceasta oferă spațiu pentru o definiție a bean-ului unei sesiuni HTTP globale.

Q.19 Explicați ciclul de viață al fasolei în containerul Spring Bean Factory

  1. Containerul Spring instanțiază mai întâi bean-ul din definiția bean-ului din fișierul XML.
  2. Spring folosind injecția de dependență populează toate proprietățile.
  3. Fabrica apelează setBeanName() dând ID-ul bean-ului dacă bean-ul execută interfața BeanNameAware.
  4. Fabrica apelează setBeanFactory() prin crearea unei instanțe a lui însuși dacă bean-ul execută interfața BeanFactoryAware.
  5. Dacă există vreun BeanPostProcessors legat de bean, atunci sunt apelate metodele preProcessBeforeInitialization().
  6. Dacă bean-ul specifică metoda init, atunci este apelat.
  7. Dacă există vreun BeanPostProcessors legat de bean, atunci sunt apelate metodele preProcessAfterInitialization().

Q.20 Explicați cablarea Bean

Cablajul de fasole este atunci când toate boabele sunt combinate împreună în interiorul recipientului Spring. Containerul Spring trebuie să înțeleagă ce boabe sunt necesare și cum ar trebui să folosească injecția de dependență pentru a lega boabele între ele.

Q.21 Ce este cablarea automată și denumirea diferitelor moduri de cablare automată?

Recipientul Spring are capacitatea de a auto-cabla relațiile dintre boabele de conectare. Spring poate rezolva automat colaboratorii pentru bean-ul tău, văzând conținutul BeanFactory.

Diferitele moduri de auto-cablare bean sunt:

  1. nu: Aceasta este opțiunea preselectată, ceea ce înseamnă că nu există cablare automată. Trebuie să utilizați o referință explicită de fasole pentru cablare.
  2. byName: injectează dependența de obiect pe baza numelui bean-ului. Își împerechează și își conectează proprietățile cu boabele explicate prin numele exacte din fișierul XML.
  3. byType: După cum spune și numele, injectează dependența de obiect în funcție de tip. Se potrivește și conectează o proprietate dacă tipul se potrivește cu unul dintre numele boabelor dintr-un fișier XML.
  4. Constructor: Un constructor injectează dependența apelând constructorul clasei. Are mulți parametri.
  5. Autodetect: implicit, containerul se conectează automat folosind un constructor. Dacă nu reușește, atunci încearcă să se auto-conecteze prin byType.

Q.22 Care sunt restricțiile sau limitările cablajului automat?

Există câteva limitări/restricții cu care se confruntă folosind cablarea automată, cum ar fi:

  • Posibilitate de suprascriere: Folosind setările <constructor-arg> și <property>, puteți specifica dependențe. Acesta va suprascrie cablarea automată.
  • Tip de date primitive: tipul de date, clasele și șirurile de caractere primitive nu pot fi conectate automat.
  • Natură complicată: cablarea explicită este preferată față de cablarea automată, deoarece aceasta din urmă este de natură confuză.

Q.23 Ce este configurația containerului bazată pe adnotări?

O alternativă la setările XML, configurația containerului bazată pe adnotări, este folosită pentru a descrie o cablare bean. Dezvoltatorul transferă configurația în clasa componentei utilizând adnotări pe metoda, clasa sau declarația câmpului.

Q.24 Cum activați cablul de adnotare în Spring?

Cablajul de adnotare este dezactivat în mod implicit în containerul Spring. Deci, pentru a utiliza cablarea bazată pe adnotări, trebuie să o activați în fișierul de configurare Spring setând elementul <context:annotation-config/>.

Î.25 Explicați diferența dintre diferite adnotări precum @Controller, @Component, @Repository și @Service în Spring?

@Controller: Aceasta indică o clasă ca controler Spring Web MVC. Importă automat boabele marcate cu el în containerul Dependency Injection.

@Component: Aceasta indică o clasă java ca bean. Este un stereotip general pentru orice componentă gestionată de Spring. Procesul de scanare a componentelor din Spring îl poate prelua și trage în contextul aplicației.

@Service: Această adnotare este o zonă de adnotare a componentelor. Nu există un comportament nou asupra adnotării @Component. Se poate folosi @Service în loc de @Component în clasele de nivel de serviciu, deoarece specifică intenția în mod corespunzător.

@Repository: Această adnotare este o zonă a adnotării @Component. Vine cu aceleași funcții și utilizări. Cu toate acestea, oferă câteva avantaje în plus, tocmai pentru DAO. Acesta introduce DAO-urile în containerul DI și califică excepțiile neverificate pentru traducere în Spring DataAccessException.

Q.26 Descrieți suportul Spring DAO

Suportul pentru obiectul de acces la date din Spring facilitează accesul la tehnologii precum Hibernate, JDBC sau JDO într-un mod adecvat și stabil. Vă permite să selectați oricare dintre tehnologii fără nicio bătaie de cap. De asemenea, vă permite să codificați fără a vă stresa cu privire la capturarea excepțiilor care sunt legate de fiecare dintre aceste tehnologii.

Q.27 Ce clase sunt disponibile în Spring JDBC API?

Clasele care sunt prezente în API-ul JDBC sunt:

  1. JdbcTemplate
  2. SimpleJdbcTemplate
  3. NamedParameterJdbcTemplate
  4. SimpleJdbcInsert
  5. SimpleJdbcCall

Q.28 Care sunt metodele prin care se poate accesa Hibernate folosind Spring?

Există două metode prin care se poate accesa Hibernate folosind Spring:

  1. Metoda de inversare a controlului cu un șablon de apel invers și hibernare.
  2. Aplicarea unui nod AOP Interceptor și extinderea suportului HibernateDAOS.

Q.29 Denumiți tipurile de gestionare a tranzacțiilor acceptate de Spring

Spring acceptă două tipuri de management al tranzacțiilor. Sunt:

  1. Managementul tranzacțiilor programatice: Aici, tranzacția este controlată cu ajutorul programării. Oferă o mare flexibilitate. Cu toate acestea, este greu de întreținut.
  2. Managementul declarativ al tranzacțiilor: aici, managementul tranzacțiilor este ținut în afara codului de afaceri. Se pot folosi doar adnotări sau configurații bazate pe XML pentru a controla tranzacțiile.

Q.30 Descrieți AOP

AOP este cunoscut ca programare aranjată pe aspect. Este un sistem de programare care le permite inginerilor de software să moduleze preocupările transversale sau comportamentul care trece peste diviziunile standard ale obligațiilor. Exemple de preocupări transversale sunt înregistrarea în jurnal și gestionarea tranzacțiilor. Miezul AOP este un aspect . Acesta exemplifică practicile care pot influența diferite clase în module reutilizabile.

Q.31 Ce înțelegi prin aspect?

Aspectul este modularizarea preocupării, care trece peste mai multe obiecte. Un bun exemplu de preocupări transversale în J2EE ar fi aplicațiile de gestionare a tranzacțiilor. Aspectele sunt efectuate utilizând clase obișnuite sau clase obișnuite explicate cu adnotarea @Aspect în Spring Framework.

Q.32 Ce este un JoinPoint

Un punct în care execuția unui program se numește JoinPoint, de exemplu, gestionarea unei excepții sau execuția unei metode. În Spring AOP, un JoinPoint reprezintă în mod constant o execuție a unei metode.

Q.33 Ce înțelegeți prin cadrul Spring MVC?

Cadrul Spring web MVC oferă arhitectură model-view-controller și componente gata de utilizare. Puteți utiliza aceste componente pentru a crea aplicații web flexibile și slab cuplate. Modelul MVC sprijină izolarea diferitelor aspecte ale aplicației, cum ar fi logica de afaceri, logica de intrare și logica UI, oferind în același timp o cuplare liberă între fiecare dintre aceste componente.

Q.34 Descrieți DispatcherServlet

Acesta este nucleul cadrului Spring Web MVC. Gestionează toate solicitările și răspunsurile HTTP. DispatcherServlet primește din fișierul de configurare intrarea mapării handlerului și transmite cererea înainte controlerului. Controlerul oferă apoi un obiect Model și View. DispatcherServlet marchează intrarea soluției de vizualizare în fișierul de configurare și apelează componenta de vizualizare definită.

Q.35 Explicați WebApplicationContext

WebApplicationContext este o creștere a ApplicationContext simplu. Are câteva caracteristici suplimentare care sunt necesare pentru aplicațiile web. Este diferit de un ApplicationContext normal, deoarece are capacitatea de a rezolva teme și de a decide cu ce servlet este conectat.

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Am acoperit majoritatea întrebărilor de primăvară ale interviului de primăvară care sunt puse de intervievator. Dacă sunteți interesat să aflați mai multe și aveți nevoie de mentorat de la experții din industrie, consultați programul Executive PG de la upGrad și IIIT Banglore Dezvoltare software full-stack .

Ce este Java Spring?

Java Spring dezvoltat de Sun Microsystems, este o platformă care acceptă dezvoltarea de aplicații. Spring este o colecție de servicii bazate pe Java și API-uri care ajută la scrierea aplicațiilor scalabile. Spring este un cadru de dezvoltare de aplicații open-source. Poate fi folosit cu orice aplicație bazată pe Java, făcându-l astfel open source. Spring oferă clase de utilitate, gestionarea excepțiilor, AOP și interfețe pentru a sprijini aplicațiile de întreprindere. Java Spring este o platformă care acceptă aplicații Java bazate pe server și simplifică procesul general de dezvoltare. Este o platformă extrem de flexibilă care poate fi utilizată cu orice server bazat pe Java. Oferă clase de utilitate și servicii de gestionare a excepțiilor. Are un sistem de suport tranzacțional și oferă o legătură ușoară cu bazele de date.

Ce este Spring MVC?

Spring MVC (Model View Controller) este un cadru de aplicații web open-source care este scris în Java și a fost dezvoltat în ultimii patru ani de o echipă de la SpringSource. Este dezvoltat pe deasupra API-ului Servlet și este disponibil pentru aplicațiile Web Java EE 5 și pentru aplicațiile Google Web Toolkit. De asemenea, se integrează cu Spring Data și Spring AOP, astfel încât să îl puteți utiliza cu Hibernate, JPA și programare orientată pe aspecte, printre alte cadre. Spring MVC este foarte configurabil și acceptă principiile Spring de inversare a controlului (IoC). Acceptă construirea de aplicații web care sunt cu stare, astfel încât să puteți menține informații despre starea aplicației între solicitări.

Ce este Spring Hibernate?

Hibernate este o bibliotecă ORM (object-relational mapping) pentru Java. Hibernate este conceput pentru a gestiona obiectele clasei Persistența Java. Este un cadru ORM puternic, ușor și extrem de portabil. Hibernate este disponibil sub Licența GNU Lesser General Public License (LGPL). Spring Data este un proiect din cadrul Spring Framework care oferă un set de componente pentru a accesa și gestiona datele într-un mod mai orientat pe obiecte, folosind paradigma familiară Spring Inversion of Control (IoC). Hibernate este doar un cadru ORM. Spring Data, pe de altă parte, este un efort de a crea un strat de abstractizare peste diferite mecanisme de stocare, cum ar fi baze de date relaționale, NoSQL, fișiere plate etc.