Ser du frem til et kommende jobbintervju som Java Spring Boot-utvikler, men er usikker på hvilke spørsmål du kan forvente? Da er du ikke alene!
Denne artikkelen er laget for å hjelpe deg med forberedelsene. Vi gir deg en oversikt over flere vanlige spørsmål som kan dukke opp i et intervju, samt forslag til svar som kan imponere intervjueren.
Intervjuere bruker strategiske spørsmål om Java Spring Boot for å vurdere kandidatenes kompetanse innenfor det aktuelle fagfeltet. Derfor er det viktig å forberede seg på relevante spørsmål og vite hvordan man skal svare på dem.
Før vi går direkte til spørsmålene og svarene, la oss se nærmere på hva Spring Boot er og hvor nyttig det er for Java-utviklere.
Hva er Java Spring Boot?
Dette Java-rammeverket ble utviklet av et sentralt team i 2014. Spring Boot er et åpen kildekode-rammeverk som brukes til å utvikle applikasjoner som er selvstendige, egnet for produksjon, og som kan kjøre på en Java Virtual Machine (JVM).
Java-utviklere foretrekker dette rammeverket for å utvikle webapplikasjoner og mikrotjenester. Dette skyldes den raske og enkle oppsettsprosessen og de gode konfigurasjonsmulighetene.
Det enkle oppsettet og konfigurasjonen av Spring-baserte applikasjoner med Spring Boot er muliggjort av tre hovedfunksjoner:
- Autokonfigurasjon: Dette innebærer en automatisk konfigurering av Spring-applikasjonen.
- Spring Boot tilbyr en gjennomtenkt tilnærming til konfigurasjonsstandarder og pakkene som skal installeres for de nødvendige avhengighetene. Denne tilnærmingen forenkler et raskt oppsett av prosjekter.
- Spring Boot gjør det mulig å kjøre applikasjonen selvstendig uten behov for en egen webserver.
Hvordan er Spring Boot nyttig for Java-utviklere?
For det første, Java-utviklere som bruker Spring Boot får det enklere med automatisk konfigurasjon av alle komponenter som trengs for å utvikle en Spring-applikasjon i produksjonskvalitet. Dette fører til redusert utviklingstid og økt effektivitet.
Spring Boot integreres også enkelt med Spring sitt eget økosystem, som inkluderer Spring JDBC, Spring Data, Spring Security og Spring ORM.
Java-utviklere kan også koble Spring Boot til ulike databaser, som for eksempel Oracle, MySQL, PostgreSQL og MongoDB.
Fleksible konfigurasjoner med XML-konfigurasjoner, Java-bønner og databasetransaksjoner er også viktige funksjoner.
Nå som du har en grunnleggende forståelse av Spring Boot, la oss se på noen av de vanligste spørsmålene og svarene fra intervjuer. Dette vil hjelpe deg med å forberede deg til intervjuet.
Spring Boot Intervju Spørsmål og Svar
Hva er noen av funksjonene til Spring Boot?
Noen av de mest populære funksjonene inkluderer:
- Spring Boot CLI gir Groovy som hjelp til å skrive Spring Boot-applikasjonen, noe som reduserer unødvendig kode.
- Spring Boot gir logging og en sikkerhetsfunksjon som enkelt sikrer applikasjonen mot potensielle trusler.
- Den sørger for automatisk konfigurasjon av relevante komponenter i prosjektet, noe som unngår risiko for unødvendige WAR-filer.
- Startinitialisereren etablerer en standard intern prosjektstruktur for deg, slik at du slipper å sette opp strukturen manuelt.
- Spring Boot-aktuatorfunksjonen gir tilgang til innsikt og beregninger mens applikasjonen kjører.
- En av de viktigste funksjonene, Starter Dependency, hjelper til å samle ofte brukte avhengigheter for en spesifikk funksjon.
Hva er Spring Boot Starters?
Spring Boot Starters er beskrivelser av avhengigheter. Disse inneholder et sett med avhengighetsadministrasjonsleverandører som aktiverer applikasjonens avhengigheter. De tilbyr rammeverket med Auto-Dependency Resolution. Starters bidrar til enklere og raskere utvikling.
Hva er en aktuator i Spring Boot, og hva er fordelene?
Aktuatoren er en av Spring Boot-funksjonene som lar deg overvåke hva som skjer inne i en applikasjon mens den kjører.
Ved feilsøking kan du bruke aktuatoren til å analysere logger ved å gi tilgang til funksjoner som CPU-bruk og identifikasjon av bønner.
I tillegg gir aktuatoren ikke bare enkel tilgang til produksjonsklare REST-endepunkter som overvåker og administrerer informasjon, men henter også data fra nettet.
Hva er Thymeleaf, og hvordan bruker man det?
Thymeleaf er en server-side templating-motor for Java som brukes til å lage naturlige maloppsett for både Spring- og HTML5 Java webapplikasjoner.
Spring Boot utfører en automatisk konfigurasjon av Thymeleaf ved å bruke spring-boot-starter-thymeleaf-avhengigheten i pom.xml-filen for å generere dynamisk webinnhold.
For å la Spring Boot lese og gjengi Thymeleaf-malene eller HTML-filene, plasseres malene i src/main/resources/templates.
Thymeleaf analyserer deretter index.html-filen og bruker de faktiske verdiene du sender fra kontrollerklassen i stedet for de dynamiske verdiene som er tilgjengelige i indeksfilen.
Meldingen vises i nettleseren så snart Spring Boot-applikasjonen kjører.
org.springframework.boot spring-boot-starter-thymeleaf
Beskriv prosessen med å lage et Spring Boot-prosjekt ved hjelp av Spring Initializer.
Spring Initializr er et webverktøy fra Spring som lar deg opprette et Spring Boot-prosjekt i noen få enkle steg ved å spesifisere detaljer om prosjektet.
- Gå til Spring Initializr og fyll ut de nødvendige feltene.
- Klikk på «Generer»-knappen for å starte nedlastingen av prosjektet.
- Pakk ut det nedlastede prosjektet fra zip-filen og åpne det i din IDE. Fra IDE, naviger til Fil->Ny->Prosjekt fra eksisterende kilder->Spring-boot-app, og velg deretter pom.xml-filen. Klikk for å importere endringer slik at prosjektet synkroniseres. Etter dette, endre server.port-nummeret til server.port=7000 i application.properties-filen.
- Kjør nå programmet fra src->main->java->com.gfg.Spring.boot.app.
Hva er JPA i Spring Boot?
Dette er en spesifikasjon i Java som bruker Object-Relation Mapping (ORM) for å administrere relasjonsdata og gi tilgang til data mellom Java-objektet eller Java-klassen og applikasjonens relasjonsdatabase.
JPA bruker Java Persistent Query Language (JPQL), et objektorientert spørrespråk som også er plattformuavhengig.
JPA tillater spørringsbehandling og objekttransaksjoner mot databasen ved hjelp av Entity Manager API.
Hva er automatisk konfigurasjon i Spring Boot?
Autokonfigurasjon forsøker å automatisere Spring Boot-applikasjonskonfigurasjon ved hjelp av jar-avhengighetene du legger til applikasjonen.
Avhengig av de tilgjengelige avhengighetene i Classpath til applikasjonen, vil autokonfigurasjon deklarere de innebygde objektene til den fjærspesifikke modulen, inkludert JPA og fjærsikkerhet.
Hva er Spring-annotasjoner?
Spring-annotasjoner refererer til metadata som gir informasjon om et programutdrag, og de legger til tilleggsdata til det programmet. Kodekomponenter, inkludert klasser og metoder, er ofte koblet til annotasjoner.
Annotasjoner påvirker ikke direkte programmets drift eller den kompilerte kodens handlinger. Syntaksen deres begynner med «@»-symbolet.
Spring Boot gir seks hovedtyper av annotasjoner:
- Springs kjerneannotasjoner
- Springs dataannotasjoner
- Springs bønneannotasjoner
- Springs webannotasjoner
- Springs planleggingsannotasjoner
- Spring Boots annotasjoner
Hva betyr Spring Data REST?
Spring Data REST eksponerer ressurser i RESTful rundt Spring Data Resources ved hjelp av minimalt med kode.
Følgende eksempel bruker POST-metoden for å be om innhold med http://localhost/example som URL og Content-Type: application/json som Header.
Be om innhold:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 }
Svarinnhold:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 "_links": { "self": { "href": "http://localhost:8080/example/1" }, "person": { "href": "http://localhost:8080/example/1" } } }
Dette er et omfattende sett med forhåndsdefinerte verktøy der egenskapene brukes i de respektive utviklingsmiljøene for å forenkle utviklingen og spare tid.
Hver gang du endrer kode i Spring Boot-applikasjonen, starter Spring Boot DevTools-funksjonen automatisk på nytt. Dette sparer deg for bryet med å starte applikasjonen manuelt hver gang du endrer koden.
Hva er Spring Data?
Spring Data gir utviklere enkel tilgang til datatilgangsteknologier som relasjonelle og ikke-relasjonelle data og skybaserte datatjenester, samtidig som den tar hensyn til de underliggende datalagerenes spesielle egenskaper.
Hvordan forteller man en autokonfigurasjon om å trekke seg tilbake når en bean eksisterer?
Her kan du bruke @ConditionalOnMissingBean-annotasjonen, som inkluderer attributtene «name» og «value».
- «value»-attributtet lagrer bønnens type som skal sjekkes.
- «name»-attributtet navngir bønnen som skal sjekkes.
Hvordan henter man data fra databasen i Spring Boot?
Vi kan hente data fra en MySQL-database til Spring Boot-applikasjonen ved å følge disse trinnene:
Trinn 1: Bruk kommandoen «CREATE DATABASE person» for å opprette databasen i MySQL.
Trinn 2: Lag en tabell i databasen:
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));
Trinn 3: Lag en Spring Boot-applikasjon, og legg til JDBC, MySQL og de nødvendige webavhengighetene.
Trinn 4: Konfigurer databasen fra application.properties-filen:
spring.datasource.url=jdbc:mysql://localhost:3306/personDetails spring.datasource.username=example123 spring.datasource.password=example123 spring.jpa.hibernate.ddl-auto=create-drop
Trinn 5: Håndter forespørsler i kontrollerklassen:
package com.person; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.RestController; @RestController public class JdbcController { @Autowired JdbcTemplate jdbc; @RequestMapping("/save") public String index(){ jdbc.execute("insert into person (name)values(Trial)"); return "Name entered Successfully"; } }
Til slutt, kjør programmet mens du sjekker databaseoppføringen for å se de hentede dataene.
Hvorfor trenger vi Spring-profiler?
Spring-profiler tillater en applikasjons konfigurasjon å være delt inn i forskjellige deler og brukt til spesifikke utviklinger.
Spring-profiler sparer utvikleren for bryet med å administrere miljøspesifikke eksterne konfigurasjoner. Uten dem, ville det være vanskelig å holde synkronisering, og det ville være behov for å skrive flere fabrikklignende komponenter som ville utnytte bestemte nødvendige ressurser avhengig av miljøspesifikke parametere.
Kan vi endre porten til den innebygde Tomcat-serveren i Spring Boot?
Ja, det kan vi.
Dette gjøres ved å manipulere filen application.properties slik at den inkluderer server.port-egenskapen, og tilordne den en ønsket port. Spring Boot laster automatisk applikasjonsegenskapsfilen og bruker de nødvendige konfigurasjonene til applikasjonen.
Du kan for eksempel endre server.port-nummeret fra standardverdien 8080 til server.port= 8081.
Hvordan konfigurerer du Log4j for logging?
Med disse enkle trinnene kan Log4j konfigureres for logging:
- Først oppretter du Java-prosjektet ditt, og høyreklikker deretter prosjektet. Naviger til MyEclipse->Fil->Nytt->Java-prosjekt for å navngi prosjektet og klikk på Fullfør.
- Høyreklikk Java-prosjektnavnet og velg «Bygg bane» -> «Konfigurer byggebane». Dette trinnet vil legge til log4j-filen.
- Naviger til biblioteket og klikk på «Add External JARS»-knappen, og velg log4j-filen fra nedtrekksmenyen som vises. Klikk deretter OK.
- Opprett en ny java-fil som du vil kalle log4j.properties-filen, klikk deretter på «Fullfør», og legg til denne filen i Classpath.
- Klikk på «Avansert» fra klassebanen, velg deretter «Legg til mapper», og klikk på OK.
- Du kan nå søke etter log4j.properties-filen, klikke OK, og kjøre prosjektet.
- Sjekk konsollen for utdata.
[main] DEBUG Example – Hello this is a debug message [main] INFO Example – Hello this is an info message
Hva er en IoC-beholder?
IoC (Inversion of Control)-beholderen er en kjerne-Spring-beholder som automatisk implementerer avhengighetsinjeksjon. Den instansierer applikasjonens klasser og er ansvarlig for objektenes konfigurasjon og montering av nødvendige avhengigheter.
Den administrerer også et objekts livssyklus fra det instansieres til det blir ødelagt.
IoC utfører disse oppgavene ved hjelp av metadatakonfigurasjon i Java-kode, XML og Java-annotasjoner.
Beholderen refereres til som en «inversjon av kontroll» fordi den styrer Java-objekter og deres livssykluser. Dette er vanligvis en utviklers oppgave.
Forklar hvordan du lager en Spring Boot-applikasjon ved hjelp av Maven.
Denne prosessen innebærer en rekke trinn.
Trinn 1: Velg type prosjekt.
Trinn 2: Gi prosjektet et navn og klikk på «Fullfør»-knappen for å opprette prosjektet.
Trinn 3: Konfigurer pom.xml-filen fra Maven-prosjektet for å gjøre det om til et Spring Boot-prosjekt.
pom.xml-fil:
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javatpoint</groupId> <artifactId>spring-boot-example</artifactId> <version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name> </project>
Konfigurasjonen innebærer å legge til en forelder til Maven-prosjektet. Dette deklarerer Maven-prosjektet som et underprosjekt til det overordnede prosjektet.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent>
Trinn 4: Legg deretter til webavhengigheten, spring-boot-starter-web, til pom.xml.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
Trinn 5: Legg til Java-versjonen til prosjektet.
<properties> <java.version>1.8</java.version> </properties>
Trinn 6: Husk at du må oppdatere Maven-prosjektet hver gang du legger til nye avhengigheter.
Trinn 7: Gjør Maven-prosjektet kjørbart ved å lage en Java-klasse i pakken src/main/java.
Trinn 8: Kall Spring Application sin statiske «run»-metode.
Trinn 9: Kjør klassen som en Java-applikasjon.
Hva er fordelene med Spring Boot fremfor Spring?
- Spring Boots «bootstrapping»-evne, som kompilerer kildespråket ved hjelp av Boot-initialiser, sparer plass på brukernes enheter og reduserer applikasjonens lastetid.
- I motsetning til Spring, tillater Spring Boot avhengighetsadministrasjon etter å ha lagt til spring-boot-avhengighetene uten å være avhengig av en overordnet POM (Parent Object Model) eller XML-fil.
- Spring Boot lar utviklere bruke enten annotasjoner eller XML-konfigurasjoner, uten å være avhengig av XML-konfigurasjoner.
- Utviklere foretrekker Spring Boot på grunn av den reduserte standardkoden som kreves for å sette opp en applikasjon. Dette skyldes at Spring Boot kommer med en database i minnet og en innebygd Tomcat-server. Spring krever mer standardkode.
- Spring Boot trenger ikke WAR-filer (web application resource) og kan bare stole på JAR (Java Resource), som har en liten og enklere struktur.
- Spring Boot legger automatisk inn servere som Tomcat og Jetty. Utvikleren trenger ikke å sette opp serveren manuelt slik som i Spring.
Pagineringsprosessen deler data inn i seksjoner for å spare ressurser. Det omfatter to felt, sidestørrelsen og sidetallet.
Prosessen inkluderer følgende trinn:
Trinn 1: Innledende oppsett
Konstruer en enhet. Her kaller vi den Person som domeneklasse.
@Entity public class Person { @Id private long id; private String name; }
Trinn 2: Oppretting av arkiv
Deretter bruker du en PersonRepository som utvider PagingAndSortingRepository for å kunne bruke metodene findAll(Pageable pageable) og findAll(Sort sort) for henholdsvis personsøk og sortering.
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }
Trinn 3: Pagineringsprosess
Det første trinnet her innebærer å lage et PageRequest-objekt, ved å sende inn sidenummeret og sidestørrelsen som forespurt, og som implementerer Pageable-grensesnittet.
Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);
Send deretter dette PageRequest-objektet til repository-metoden som parameter.
Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements); List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
Som standard vil findAll(Pageable pageable)-metoden returnere et Page<T>-objekt.
Forklar hvordan du registrerer en tilpasset automatisk konfigurasjon.
Under @EnableAutoConfiguration-nøkkelen i filen META-INF/spring.factory, nevner du det fullstendige navnet. Dette trinnet registrerer autokonfigurasjonsklassen.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Når prosjektet bygges ved hjelp av Maven, må filen plasseres i ressurs-/META-INF-katalogen.
Hva er bootstrapping i Spring Boot?
Bootstrapping er prosessen med å utføre logikk i Spring Boot-applikasjonen ved oppstart.
Boot initializr kompilerer kildespråket i Spring Boot. Denne prosessen sparer plass på enheten og reduserer applikasjonens lastetid.
Siste ord 👨💻
Denne artikkelen dekket en rekke Spring Boot-spørsmål som intervjuere sannsynligvis vil stille under et jobbintervju, samt forslag til svar. Vi håper dette hjelper deg med å forberede deg på best mulig måte, og at du lander drømmejobben!
Det kan også være lurt å lære noen relevante tips fra spørsmål som stilles under et Java-intervju.
Lykke til! 🙂