top 48 spring interview questions
Liste over ofte stilte spørsmål om vårintervju og svar som hjelper deg med å forberede deg på det kommende intervjuet:
I denne artikkelen vil vi lære om det mest populære og mest brukte Spring Framework. Det inkluderer Spring Framework og Spring MVC spørsmål for nybegynnere og erfarne fagfolk. Men før vi går dypt inn i vårdelen, la oss forstå hva et rammeverk er og hvorfor vi trenger et rammeverk i tillegg?
Et rammeverk i enkle termer kan forstås som en viss grense som allerede er bygget for at andre ting skal komme og akkumulere for å utføre en bestemt handling.
I programvareterminologien kan et Framework defineres som et bestemt program som allerede er utviklet som inneholder mange funksjoner og funksjoner for å støtte ethvert program som er i utviklingsmodus.
Vårramme
Et rammeverk inneholder flere ferdige klasser og komponenter, som en utvikler ikke trenger å lage for å utvikle en applikasjon, og reduserer dermed mye kodekompleksitet og gjør applikasjonen enkel å vedlikeholde. Det sparer også tid, og dermed oppnås kostnadsreduksjon.
Vår Framework er kjent som et lett rammeverk på grunn av sin lille størrelse og høye effektivitet. Det er åpen kildekode og gir dermed en sterk infrastruktur for å utvikle Java-applikasjoner på en enkel og enkel måte. Det gir støtte til forskjellige andre rammer som Hibernate, Struts, EJB, etc.
Den er delt inn i visse moduler for å oppnå flere ting samtidig. Vårmoduler inkluderer kjernemodul, nettmodul, dataintegrasjonsmodul, testmodul, AOP-modul, etc. Hver modul tjener sitt eget formål i henhold til utviklerens krav.
I denne artikkelen vil vi dekke alle viktige temaer om våren som er viktige sett fra intervjuet.
Vi vil dekke det som er et Spring Framework, dets modultyper, konseptet med avhengighetsinjeksjon og inversjon av kontroll, bønne og livssyklusen, forskjellige omfang av bønne, autowiring-konsept, hendelseshåndtering om våren, Spring AOP, Spring Transaction Management , våren MVC og dens arkitektur flyter.
Vi vil også dekke den viktige merknaden som brukes i forskjellige moduler av fjær og konfigurasjoner, og om fjærbeholder.
Noen kodeeksempler på veldig viktige konsepter er forklart her, og de vil hjelpe deg med å forklare på en detaljert måte. Ytterligere lenker er gitt for å henvise til eksemplet på Spring MVC. Vi har forklart konseptet med senderservlet på en veldig raffinert måte.
Med disse skarpe og punkt-til-punkt-svarene vil du kunne svare på de fleste intervjuspørsmålene trygt.
Mest populære vårintervju spørsmål og svar
La oss utforske de ofte stilte spørsmålene om vårens rammeverk med detaljerte svar og eksempler.
Q # 1) Hva er et rammeverk? Forklar vårrammen.
Svar: Framework er en allerede bygget programvare som hjelper utviklerne å legge til flere funksjoner i applikasjonene sine ved å bruke allerede bygget klasser og biblioteker.
Spring Framework er et avhengighetsinjeksjonsrammeverk, som hjelper utviklerne med å utvikle applikasjoner basert på Java. Spring er et open source-rammeverk for Java Enterprise.
Spørsmål nr. 2) Hvorfor foretrekkes våren fremfor de andre rammene?
Svar: Våren foretrekkes fremfor de andre rammene på grunn av funksjonene nedenfor:
- Veldig liten størrelse og lett
- Hjelper med å oppnå løst koblet applikasjon ved Inversion of Control.
- AOP-støtte
- MVC-rammeverk
- God transaksjonsstyringsfunksjon
- Fjærbeholder
- Avvikshåndtering
Q # 3) Kategoriser de forskjellige typene moduler i Spring Framework.
Svar: De fem hovedmoduler i Spring Framework er nevnt nedenfor:
- Spring Core Container som inkluderer kjerne, bønner, kontekst og uttrykk språk.
- AOP og aspekter.
- Dataintegrasjonsmodul som inkluderer JDBC, OXM, ORM, transaksjonsmoduler etc.
- Webmodul som inkluderer web, servlet, stivere og portlet.
- Test
Q # 4) Forklar vårkonfigurasjonsfilen.
Svar: En XML-fil inneholder all informasjon om klasser sammen med konfigurasjonsprosessen og hvordan disse klassene har samhandlet med de andre klassene.
Q # 5) Forklar begrepet avhengighetsinjeksjon.
Svar: For det første betyr injeksjon å overføre avhengigheten til et avhengig objekt.
Avhengighetsinjeksjon er et slags designmønster som hjelper til med å utvikle en løs koblet applikasjon. Det er en implementering av inversjon av kontroll som hjelper til med å løse avhengigheter i en applikasjon.
Det unngår å lage selvobjekter og styrer heller hvordan objekter skal opprettes gjennom konfigurasjoner, og deretter bestemmer IOC hvilke tjenester som må matches av hvilke komponenter.
Avhengighetsinjeksjon er kjernefunksjonen i Spring Framework.
Q # 6) Hva er forskjellige typer avhengighetsinjeksjon? Forklar dem.
Svar: Det er to typer avhengighetsinjeksjon. De er som følger:
hvordan konvertere char til int c ++
- Konstruksjonsbasert avhengighetsinjeksjon - Det oppnås når vårcontaineren påkaller en konstruktør med argumenter og hver har noen avhengighet av den andre klassen.
- Setterbasert avhengighetsinjeksjon- Det oppnås når vårbeholderen kaller settermetoden for bønner etter å ha påkalt en konstruktør uten argumenter for å instantiere bønnen.
Q # 7) Hva er bra å bruke - Constructor eller Setter-basert avhengighet?
Svar: Begge typer avhengighetsinjeksjon kan brukes i samsvar med situasjonene. Det er en tommelfingerregel at for obligatorisk avhengighet brukes konstruktørbasert avhengighetsinjeksjon, mens for valgfri avhengighet brukes setterbasert avhengighetsinjeksjon.
Sp # 8) Hva er fordelene med Inversjon av kontroll?
Svar: Det er flere fordeler med IOC, og få av dem er nevnt nedenfor:
- IOC er i stand til å redusere kodekompleksiteten ved å redusere koden i applikasjonen.
- Ved å bruke IOC i applikasjonen blir testing enklere og enklere ettersom ingen oppslag og singletoner er påkrevd.
- Løs kobling oppnås av IOC, og det gjør i sin tur koden mer vedlikeholdbar.
- IOC støtter tidlig instantiering og sen lasting av tjenester.
Q # 9) Forklar konseptet med AOP.
Svar: AOP står for Aspect Oriented Programming. Det er en annen tilnærming til programmering som hjelper utviklerne med å omstrukturere oppførselen til ansvar som Transaction Management og logging.
AOP er implementert for tverrgående bekymringer, dvs. definisjonen er gitt på ett sted og funksjonelt kan den brukes mange steder ved hjelp av skriptet.
Q # 10) Forklar bruken av Spring Container.
Svar: Det er kjernen og ryggraden i Spring framework. Spring Container hjelper til med å lage objekter, kombinere objektene sammen, administrere deres konfigurasjoner og fullføre livssyklusen for opprettelse, implementering og ødeleggelse.
Spring container tar hjelp av Dependency Injection for å administrere komponentene som bygger opp applikasjonen.
Sp # 11) Hva er de forskjellige typene IOC-containere?
Svar: IOC-beholderen er av to typer som nevnt nedenfor:
- Bean Factory - Det er en enkel beholder og gir støtte for avhengighetsinjeksjon.
- Våren ApplicationContext - Det er en avansert container som legger til kompliserte funksjoner som dekoder tekstmeldinger fra filer og er i stand til å publisere hendelser til lytterne.
Sp # 12) Hva er implementeringen av Bean Factory container?
Svar: XmlBeanFactory-klassen er den viktigste implementeringen av bønnefabrikken og er nyttig for å lese data fra XML-filene.
Q # 13) Hva er implementeringen av ApplicationContext container?
Svar: Noen av de mest brukte ApplicationContext-containerne inkluderer FileSystemXmlApplicationContext, ClassPathXmlApplicationContext og WebXmlApplicationContext etc.
Sp # 14) Hva er bønner om våren?
Svar: Spring Beans er ikke annet enn enkle Java-objekter som administreres av Spring container.
Eksempel:
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); } }
Sp # 15) Hva er komponentene i Bean Definition?
Svar: I utgangspunktet inneholder bønnedefinisjon konfigurasjonsmetadataene som brukes av Spring-beholderen for å kjenne til detaljer som, bønnelagringsprosess, bønnes livssyklus og avhengighet av en bønne.
Q # 16) Hva er måtene konfigurasjonsmetadata kan leveres til Spring-containeren?
Svar: Konfigurasjonsmetadataene kan leveres til Spring Container på tre måter, dvs. gjennom XML-basert konfigurasjonsfil, merknadsbasert konfigurasjon og Java-basert konfigurasjon.
SP # 17) Hva er syntaksen for å legge til en bønne i vårapplikasjonen?
Svar: Syntaks:
Sp # 18) Hva er typer bønneomfang?
Svar: Bønneomfang kan defineres som singleton og prototype, forespørsel, økt, global økt etc.
- Prototype blir erklært når det kreves en ny bønneinstans hver gang.
- Singleton blir erklært når den samme bønneinstansen brukes hver gang.
- Forespørsel brukes for omfanget av HTTP-forespørsel.
- Session brukes til HTTP-øktomfanget.
- Global-HTTP-økt overvåker bønnen til den globale HTTP-økten.
Syntax:
Sp # 19) Hvilket er standardområdet for bønner om våren? I tillegg er de synkronisert?
Svar: Standard omfanget av bønner våren er Singleton. Videre er de ikke synkronisert, det vil si at de ikke er trådsikre.
Spørsmål nr. 20) Hva er livssyklusen til en bønne om våren?
Svar: Livssyklusen til en vårbønne følger visse trinn, som nevnt nedenfor:
- Instantiering - Fjærbeholder fra XML-filen finner bønnedefinisjonen, og deretter blir bønnen instantiert.
- Befolkningsegenskaper - Fjærbeholder fyller alle egenskapene som er nevnt i bønnedefinisjonen ved hjelp av avhengighetsinjeksjon.
- Angir navnet på Bean.
- Sette bønnefabrikken.
- Forinitialisering og initialisering av bønne.
- Etter initialisering av bønne.
- Ødelegg bønnen ved å ringe destroy () -metoden.
Spørsmål nr. 21) Hva mener du med indre bønner?
Svar: Bønnen som er definert inne i eiendommen eller konstruktørelementet kalles en indre bønne.
Ingen spesifikk ID eller navn kreves for indre bønne, faktisk, Spring Container unngår disse verdiene sammen med omfangsdefinisjonen. Indre bønner sies å være anonyme, og omfanget av dem defineres alltid som prototyper.
Spørsmål nr. 22) Hva er måtene å sette inn samlingskonseptet om våren?
Svar: I utgangspunktet er det fire innsamlingselementer å sette inn på våren.
De er:
- element - Det kobler verdisettet ved å eliminere duplikatene fra dem.
- element - Det er nyttig å sette inn eller injisere verdier og tillater også dupliserte verdier.
- element - Den brukes til å sette inn en nøkkel eller et navn-verdipar som kan være av hvilken som helst type.
- element - Den brukes til å sette inn nøkkel- eller navn-verdipar, men typen skal bare være strengen.
Q # 23) Forklar begrepet Autowiring.
Svar: Autokabler er et viktig begrep i vårrammen. Den brukes til å implisitt injisere objektavhengighet ved bruk av en setter- eller konstruktørbasert injeksjon. Autokobling fungerer bare med referansetyper, så det er ikke nyttig for å injisere verdier for primitive og strengtyper.
Den beste fordelen med autowire er at utviklerne trenger å skrive mindre kode ettersom avhengighetsinjeksjon blir ivaretatt av autowire. Dessuten har ikke programmereren kontrollert over prosessen da.
Syntax:
Anbefalt lesing => Autotilkoblet vårkommentar, Spring Bean Autowire Byname
Q # 24) Forklar de forskjellige modusene for Autowiring.
Svar: Autowiring kommer med fem modi, som guider Spring Container for bruk av Dependency Injection-funksjonen.
- Ingen modus - Det kalles for å være standardinnstillingen og innebærer at autoledning er deaktivert, og en eksplisitt bønne skal brukes til referansekobling.
- ved navn - Autoledning kan gjøres etter eiendomsnavn. Spring container søker i XML-konfigurasjonsfilen etter bønnene hvis autowire-attributt er satt til byName.
- byType - Autoledning kan gjøres etter eiendomstype. Spring container søker i XML-konfigurasjonsfilen etter bønnene hvis autowire-attributt er satt til byType.
- Bygger - Det er nesten det samme som byType, men typen gjelder for konstruktørargumenter hvis ingen konstruktørargumenttype blir funnet i beholderen, kastes en feil.
- Automatisk gjenkjenning - Det refererer til atferden til våren som viser at den velger prioritering. For det første velger Spring autowiring ved hjelp av konstruktøren. Hvis det ikke skjer, endrer det prioriteten til byType.
Spørsmål nr. 25) Er det noen begrensning for autoledning? Hvis ja, forklar.
Svar: Ja, det er noen begrensninger for autoledning som er nevnt nedenfor:
- Det er alltid en mulighet for overstyring.
- Utvikleren vil ikke kunne autowire primitive og Spring egenskaper.
- Autokabler blir komplekse når de brukes i store applikasjoner sammenlignet med eksplisitte ledninger.
Spørsmål nr. 26) Hva er merkablering og hvordan slår vi på den?
Svar: Den alternative bruken av XML er merknader der utviklerne flytter hele konfigurasjonen i en klasse ved hjelp av merknader for en bestemt klasse eller metode.
Den er slått på i vårkonfigurasjonsfilen ved å erklære.
Sp # 27) Hva er bruk av @Required-merknad?
Svar: Den brukes til å indikere at bønnegenskapen ved konfigurasjonstidspunktet skal fylles ut gjennom autowiring eller eksplisitt eiendomsverdi i bønnedefinisjonen.
Eksempel:
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; } }
Spørsmål nr. 28) Hva er bruken av @Autowired-merknader?
Svar: Det hjelper å få bedre kontroll og forståelse av hvordan og hvor autoledning skal oppnås. Den kan brukes til autowire bønne på hvilken som helst settermetode, eiendom eller konstruktør.
Eksempel:
hva er forskjellen mellom unix og linux
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(); } }
Sp # 29) Hva er bruk av @Qualifier-merknader?
Svar: Det brukes hovedsakelig når utvikleren er bundet til å lage mange bønner av samme type og bare vil koble en av dem med eiendommen. I dette scenariet brukes @Qualifier med @Autowired for å fjerne forvirring og spesifisere den eksakte bønnen som skal kobles til .
Spørsmål nr. 30) Hvordan håndteres et arrangement på våren?
Svar: Hendelseshåndtering oppnås gjennom ApplicationEvent-klassen og ApplicationListner-grensesnittet.
Når bønnen implementerer ApplicationListner, blir ApplicationEvent generert til ApplicationContext og varsler at bønnen genereres.
Spørsmål nr. 31) Hva er eksemplene på standard vårbegivenheter?
Svar: Det er mange standard vårhendelser som tjener hvert formål, og få av dem er ContextStartedEvent, ContextRefreshedEvent, ContextStoppedEvent, ContextClosedEvent, RequestHandledEvent etc.
Spørsmål nr. 32) Hva betegner Joint Point?
Svar: Det angir et spesifikt punkt der AOP-aspektet kan plugges inn. Det er den opprinnelige plasseringen i applikasjonen der det kan gjøres noe ved hjelp av AOP-rammeverket.
Spørsmål nr. 33) Hva er JDBC-malen og hvordan du bruker den om våren?
Svar: JDBC-mal er en mal som leveres av Spring-rammeverket for å bruke JDBC mer effektivt.
JDBC-mal brukes vanligvis til konvertering av databasedata til objekter, utføring av utarbeidede og kallbare utsagn, og støtter også feilhåndtering for en database.
Spørsmål nr. 34) Hva er transaksjonsstyring om våren? Forklar de forskjellige typene av transaksjonsstyring.
Svar: Transaksjon er i utgangspunktet en eller annen operasjon utført på noen data i databasen. Transaction Management kommer under Relational Database management system og brukes til å sikre dataetikk og konsistens.
Kjernefordelen med Transaction Management er at den støtter deklarativ og programmatisk Transaction Management og APIer som Hibernate, JTA og JDBC ved riktig integrering.
programvare testing intervju spørsmål og svar for ferskere
Det er to typer transaksjonsstyring, som er nevnt nedenfor:
- Programmatisk transaksjonsstyring brukes til å hjelpe transaksjonen når det gjelder koding eller skripting.
- Deklarativ transaksjonshåndtering brukes til å isolere forretningskode og transaksjoner.
Spørsmål nr. 35) Hvilken er den mest brukte transaksjonsstyring?
Svar: Deklarativ transaksjonshåndtering brukes mye av utviklere.
Q # 36) Forklar Spring MVC framework.
Svar: MVC står for Model, View og Controller. Spring MVC framework brukes til å utvikle webapplikasjoner med god arkitekturflyt og konfigurasjoner. Det er svært fleksibelt i integrasjon med de andre rammene.
Q # 37) Forklar vår MVC-arkitektur.
Svar: Spring MVC-arkitektur er basert på modell, visning og kontroller.
(bilde kilde )
Ovennevnte lenke har også et enkelt eksempel på den komplette fjær-MVC-strømmen som referanse.
Flyten til vårarkitekturen går på følgende måte :
- Forespørselen mottas av ekspedisjonsservlet.
- Dispatcher servlet sender forespørselen til behandlerkartleggingen som gir svaret i form av kontrollerklassenavn.
- Nå sendes forespørselen til kontrolleren fra dispatcher-servletten, og derfor behandler kontrolleren forespørselen og returnerer modellvisningsobjektet som et svar på dispatcher-servletten.
- Igjen sender senderen servlet forespørselen om å vise resolver for å få riktig visningsside.
- Til slutt sender senderen servlet modellobjektet mottatt til nettlesersiden for å vise resultatet.
@Controller og @RequestMapping er de to hovedkommentarene som brukes i Spring MVC flow.
Q # 38) Hva er bruken av Dispatcher Servlet?
Svar: Dispatcher Servlet brukes til å håndtere alle innkommende HTTP-forespørsler og svar fra klienten. Samlet sett styrer den all kommunikasjon fra behandleren til kontrolleren for å se resolveren til selve visningssiden.
Q # 39) Forklar bruken av @Controller og @RequestMapping-merknader i Spring MVC.
Svar:
@Kontrollør - Det betegner den aktuelle klassen som oppfører seg som en kontroller.
@RequestMapping - Den brukes i utgangspunktet for å kartlegge en URL til hele klassen eller til en bestemt metode.
Q # 40) Forklar inversjonen av kontroll og avhengighetsinjeksjon gjennom et enkelt eksempel.
Svar: Som vi vet brukes den til å fjerne avhengigheten fra et program.
Kode uten DI:
public class Student { Address address; Employee() { address= new Address();// here we are creating instance } }
Student og adresse bruker samme forekomst, og det vil derfor være en avhengighet opprettet her.
Kode med DI:
public class Student{ Address address; Employee(Address address) { this.address=address;//not creating instance } }
Her opprettes ingen forekomster, så avhengighet opprettes ikke, og koden blir mer fleksibel og løst koblet.
Q # 41) Forklar råd og dets typer.
Svar: Enhver handling som tas av AOP kalles et råd.
Det er fem typer råd som nevnt nedenfor:
- Før råd.
- Etter råd.
- Etter retur råd.
- Rundt råd.
- Kaster råd.
Q # 42) Hva er de forskjellige typene av Object Relational Mapping som Spring støtter?
Svar: Spring støtter ORM som Hibernate, IBatis, TopLink, Java Data Object, OJB og JPA, etc.
Spørsmål nr. 43) Hvorfor foretrekkes vår fremfor rammer eller kjernefordeler med vårramme?
Svar: Våren foretrekkes over rammen på grunn av flere grunner. Få av dem er nevnt nedenfor:
- Spring løser mange komplekse problemer med applikasjonsutvikling ved hjelp av undermoduler som kjerne, web, datatilgang, test osv.
- Våren tilbyr POJO-klasser for utvikling som igjen reduserer stress.
- Kraftig integrasjon med de andre rammene.
- God applikasjonstesting.
- Transaksjonsstyringsfunksjon og modularitet.
Q # 44) Hva mener du med Spring Batch?
Svar: Spring batch er også et lett rammeverk som er laget for å støtte utviklingen av robuste batch-applikasjoner for enterprise-systemet.
Spring batch forbedrer produktiviteten, tilnærmingen for utvikling, og gjør at visse funksjoner som brukerne har lært på våren, blir mye enklere.
Spørsmål nr. 45) Hva er hovedbruken av Spring batch framework?
Svar: Spring batch brukes hovedsakelig til å lese og skrive filer, og også til å utføre visse operasjoner i databasen som lesing eller skriving, datatransformasjon, rapportopprettelse, også import og eksport av data, etc.
Q # 46) Forklar vårpartiarkitektur.
Svar: Vårbatcharkitektur består hovedsakelig av tre komponentlag, dvs. en applikasjon, kjerne og infrastruktur.
En applikasjon består av skript- og batchjobber opprettet av utviklerne gjennom vårpartiet. Kjernen inneholder alle viktige og nødvendige klasser som kreves for å starte og kontrollere en batchjobb. Til slutt håndterer infrastruktur både applikasjon og kjerne inkludert tjenester, lesere, forfattere, etc.
Q # 47) Forklar oppgaven i Spring Batch.
Svar: Tasklet er et grensesnitt, som ofte kalles for å utføre en oppgave bare som å rydde opp, eller slette eller sette opp ressurser i løpet av utførelsestiden.
Q # 48) Forklar arbeidsprinsippet til Spring Batch.
Svar: Vårpartiet fungerer hovedsakelig på fire trinn som nevnt nedenfor:
- For det første veileder step-it jobben for å utføre sitt respektive arbeid.
- Den har et itemReader-grensesnitt for å gi dataene.
- Den har itemProcessor-grensesnittet for transformasjon av data.
- Til slutt har den et itemStreamWriter-grensesnitt for å generere ønsket resultat.
Konklusjon
Vi håper denne artikkelen ville ha gitt deg klar informasjon om Spring Framework. Det har forklart våren og dens funksjoner, applikasjoner der våren brukes, og hvorfor det er viktig for applikasjonsutvikling.
Fjærmoduler, avhengighetsinjeksjon, inversjon av kontroll, transaksjonsstyring, aspektorientert programmering, løs koblingskonsept, fjær-MVC-arkitektur, viktige merknader, bønner og autoviring.
Alle viktige spørsmål om vårintervju som dekker alle de ovennevnte emnene er inkludert her. Det anbefales alltid å forklare ethvert konsept ved hjelp av et kodeeksempel, som gir bedre forståelse for intervjueren.
Håper denne artikkelen hjelper deg med å fjerne intervjuene, alle de beste!
Anbefalt lesing
- Intervju spørsmål og svar
- Noen interessante intervjusspørsmål om programvaretesting
- 20 selektive QA-intervjuspørsmål for å fjerne intervjuet i 2021
- ETL Testing Intervju Spørsmål og svar
- Topp 25 Perl-intervjuspørsmål du bør forberede deg i 2021
- Topp 25 spørsmål om programvareteknikkintervju (SISTE 2021)
- Topp 36 spørsmål om Jenkins intervju (For 2021)
- Topp 12 spørsmål om Mockito-intervju (Mocking Framework Interview)