22 Ofte stillede spørgsmål og svar til interview med springstøvler

Er du en Java Spring Boot-udvikler, der ser frem til at klare et kommende interview, men er du ikke sikker på, hvilke spørgsmål du kan forvente? Vi er her for at hjælpe!

Denne artikel hjælper dig med at forberede dig tilstrækkeligt ved at skitsere flere ofte stillede Spring Boot-interviewspørgsmål og svar, som interviewere kan bruge til at teste dig.

Interviewere bruger strategiske Java Spring Boot-spørgsmål til at teste interviewpersonernes færdighedsniveauer, der er relevante for deres udpegede rolle. Derfor skal du forberede dig med relevante spørgsmål og vide, hvordan du besvarer dem.

Inden vi springer direkte til interviewspørgsmålene og deres tilsvarende svar, lad os dække et grundlæggende overblik over, hvad Spring Boot er, og hvor nyttigt det er for Java-udviklere.

Hvad er Java Spring Boot?

Dette Java-framework er skabt af det centrale team i 2014. Spring Boot, som er et open source-framework, udvikler effektivt applikationer, der er uafhængige, i produktionskvalitet og også kan køre på en Java Virtual Machine (JVM).

Java-udviklere foretrækker det til udvikling af webapplikationer og mikrotjenester for dets hurtige og nemme opsætningsproces og sikre konfigurationstid.

Den nemme opsætning og konfiguration af de Spring-baserede applikationer fra Spring Boot er mulige med dens tre kerneegenskaber, som omfatter:

  • Autokonfiguration – som er en automatisk konfiguration af Spring-applikationen.
  • Spring Boot giver en meningsfuld tilgang til de konfigurationsstandarder, der skal bruges, og pakkerne, der skal installeres for de nødvendige afhængigheder. Denne meningsfulde tilgang hjælper med den hurtige opsætning af projekterne.
  • Sprsetupoot lader dig køre din applikation uafhængigt uden behov for en webserver.

Hvordan er Spring Boot nyttigt for Java-udviklere?

For det første har Java-udviklere, der bruger Spring Boot, det nemmere med automatisk konfiguration af alle de komponenter, der kræves for at udvikle en Spring-applikation i produktionskvalitet. Dette reducerer i det lange løb udviklingstiden og øger i sidste ende deres effektivitet.

Spring Boot kan også nemt integreres med Springs økosystem, som inkluderer Spring JDBC, Spring Data, Spring Security og Spring ORM.

Java-udviklere kan også forbinde Spring Boot med forskellige databaser som Oracle, MySQL, PostgreSQL og MongoDB, blandt andre.

Selvfølgelig er fleksible konfigurationer med XML-konfigurationer, Java Beans og databasetransaktioner blandt andre nyttige funktioner.

Derfor, nu hvor du har et grundlæggende overblik over Spring Boot, så lad os overveje nogle af de ofte stillede Spring Boot interview Spørgsmål og svar, som vil hjælpe dig med at forberede dig til dit interview.

Spring Boot Interview Spørgsmål og Svar

Hvad er nogle funktioner ved Spring Boot?

Nogle af disse populære funktioner inkluderer:

  • Spring Boot CLI giver Groovy til at skrive Spring Boot-applikationen; i det lange løb undgås boilerplate-kode.
  • Spring Boot giver logning og en sikkerhedsfunktion, der nemt sikrer din applikation mod potentielle sikkerhedstrusler.
  • Det giver automatisk konfiguration af relevante komponenter til dit projekt, og undgår dermed risikoen for unødvendige WAR-filer.
  • Startinitializeren fastlægger en intern standardprojektstruktur for dig. På denne måde behøver du ikke manuelt at opsætte projektstrukturen.
  • Spring Boot-aktuator-funktionen giver adgang til indsigt og målinger, mens applikationen kører.
  • Selvfølgelig hjælper en af ​​de vigtigste Spring Boot-funktioner, Starter Dependency, med at samle en bestemt funktions almindeligt anvendte afhængigheder.
  UTF-8-konfiguration i WebSphere, WebLogic, Tomcat, TC Server, JBoss

Hvad er Spring Boot Starters?

Spring Boot-startere er afhængighedsbeskrivelser, der inkluderer et sæt af afhængighedsstyringsudbydere, der aktiverer applikationens afhængigheder. De giver rammerne med Auto-Dependency Resolution. Startere forbedrer nem og hurtig udvikling.

Hvad er en aktuator i Spring Boot, og hvad er dens fordele?

Aktuatoren er en af ​​Spring Boot-funktionerne, der lader dig overvåge, hvad der sker inde i en applikation, mens den kører.

Under debugging kan du for eksempel bruge aktuatoren til at analysere logfiler ved at give adgang til funktioner som CPU-brug og identifikation af bønner.

Derudover giver aktuatoren ikke kun nem adgang til de produktionsklare REST-endepunkter, som overvåger og administrerer information, men også henter data fra nettet.

Hvad er timianblad, og hvordan bruger man timianblad?

Thymeleaf er Javas serversideskabelon, der skaber et naturligt skabelonlayout til både Spring og HTML5 Java-webapplikationer.

Spring Boot vil udføre en automatisk konfiguration af thymeleaf ved hjælp af spring-boot-starter-thymeleaf-afhængigheden i filen pom.xml for at betjene det dynamiske webindhold.

For at tillade Spring Boot at læse og gengive thymeleaf-skabelonerne eller HTML-filerne, skal du placere skabelonerne i src/main/resources/templates.

Thymeleaf analyserer derefter filen index.html og bruger de faktiske værdier, du sender fra controllerklassen, i stedet for de dynamiske værdier, der er tilgængelige i indeksfilen.

Herefter gengives meddelelsen i webbrowseren, så snart Spring Boot-applikationen kører.

org.springframework.boot spring-boot-starter-thymeleaf

Beskriv processen med at oprette et Spring Boot-projekt ved hjælp af Spring Initializer.

Spring Initializr, som er et Spring-webværktøj, lader dig oprette et Spring Boot-projekt ved hjælp af et par trin ved at angive detaljerne om projektet.

  • Gå over til Spring intializr og udfyld inputfelterne.
  • Ved at klikke på knappen Generer starter projektets download.
  • Udpak det downloadede projekt fra zip-filen og åbn den fra din IDE. Fra IDE, naviger til Filer->Ny->Projekt fra eksisterende kilder->Spring-boot-app, og vælg derefter filen pom.xml. Klik på importændringsprompten, så projektet synkroniseres. Herefter skal du huske at gå til filen application.properties og redigere server.port-nummeret til server.port=7000.
  • Kør nu applikationen fra src->main->java->com.gfg.Spring.boot.app
  • Hvad er JPA in Spring Boot?

    Dette er en specifikation i Java, der bruger Object-Relation Mapping (ORM) til at administrere relationelle data og giver adgang til data mellem Java-objektet eller Java-klassen og applikationens relationelle database.

    JPA bruger Java Persistent Query Language (JPQL), et objektorienteret forespørgselssprog, der også er platformsuafhængigt.

    JPA tillader forespørgselsbehandling og objekttransaktioner mod databasen ved hjælp af den Entity Manager API, den leverer.

    Hvad er automatisk konfiguration i Spring Boot?

    Auto-konfiguration søger at automatisere Spring Boot-applikationskonfigurationen ved hjælp af de jar-afhængigheder, du føjer til applikationerne.

    Afhængigt af de tilgængelige afhængigheder i applikationens Classpath, vil auto-konfiguration erklære det fjederspecifikke moduls indbyggede objekter, inklusive JPA, og fjedersikkerhed, blandt andre.

    Hvad er forårsannoteringer?

    Forårsannoteringer henviser til metadata, der tilbyder information om et programuddrag, og de tilføjer supplerende data til dette program. Kodekomponenter, herunder klasser og metoder, er ofte forbundet med annoteringer.

    Anmærkninger påvirker ikke direkte programmets drift eller den kompilerede kodes efterfølgende handling.
    Deres syntaks begynder med ‘@’-symbolet.

      Sådan indstilles en timer på iPhone-kameraet

    Spring Boot giver seks hovedannotationstyper, der inkluderer:

    • Spring Core Annotationer
    • Forårsdataanmærkninger
    • Forårsbønne-anmærkninger
    • Forårswebanmærkninger
    • Forårsplanlægningsanmærkninger
    • Spring Boot Annotations

    Hvad betyder Spring Data REST?

    Spring Data REST afslører ressourcerne i RESTful, der er omkring Spring Data Resources, ved at bruge minimal kode.

    Følgende eksempel bruger POST-metoden til at anmode om indhold med http://localhost/example som URL og Content-Type: application/json som Header.

    Anmod om indhold:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
    }

    Svarindhold:

    {
        "name": "Jimmy",
        "Gender": "Male",
        "Age": 23
        "_links": {
            "self": {
                "href": "http://localhost:8080/example/1"
            },
            "person": {
                "href": "http://localhost:8080/example/1"
             }
        }
    }

    Disse er et dybtgående sæt af foruddefinerede værktøjer, hvis egenskaber anvendes til de respektive udviklingsmiljøer for at gøre udvikling lettere og spare udviklingstid.

    Hver gang du ændrer kode i Spring Boot-applikationen, genstarter Spring Boot DevTools-funktionen automatisk. Derfor sparer det dig besværet med manuelt at genstarte din applikation, hver gang du ændrer din kode.

    Hvad er Spring Data?

    Spring-data søger at give udviklere nem adgang til dataadgangsteknologier som relationelle og ikke-relationelle data og cloud-baserede datatjenester, da de fortsat rummer det underliggende datalagers særlige træk.

    Hvordan fortæller man en auto-konfiguration til at trække sig tilbage, når der findes en bønne?

    Her vil du bruge @ConditionalOnMissingBean-annotationen, som inkluderer navn og værdi-attributten som følger.

    • værdi attribut gemmer bønnetypen, der skal kontrolleres
    • name-attribut, der navngiver den bønne, der skal kontrolleres

    Hvordan henter man data fra databasen i Spring Boot?

    Vi kan få adgang til data fra en MySQL-database til vores Spring Boot-applikation ved at bruge følgende trin.

    Trin 1: Brug kommandoen create DATABASE person til at oprette databasen i MySQL.

    Trin 2: Opret en tabel i databasen:

    CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));

    Trin 3: Opret nu en Spring Boot-applikation, og tilføj derefter JDBC, MySQL og de nødvendige webafhængigheder.

    Trin 4: Konfigurer databasen fra filen application.properties som nedenfor.

    spring.datasource.url=jdbc:mysql://localhost:3306/personDetails
    spring.datasource.username=example123
    spring.datasource.password=example123
    spring.jpa.hibernate.ddl-auto=create-drop

    Trin 5: Lad os derefter håndtere anmodninger i controllerklassen:

    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 sidst skal du køre din applikation, mens du tjekker databaseindgangen for at se de data, du får adgang til.

    Hvorfor har vi brug for forårsprofiler?

    Fjederprofiler tillader adskillelse af en applikations konfiguration af forskellige dele og anvender dem til specifikke udviklinger.

    Spring Profiles sparer også udvikleren for smerten ved at administrere miljøspecifikke eksterne konfigurationer, hvis Spring Profilerne ikke var tilgængelige.

    Derudover ville dette gøre det svært at holde synkroniseringen og ville betyde det ekstra behov for at skrive flere fabrikslignende komponenter, der ville benytte visse nødvendige ting afhængigt af bestemte miljøspecifikke parametre.

    Kan vi ændre porten på den indlejrede Tomcat-server i Spring boot?

    Ja vi kan.

    Dette gøres ved at manipulere filen application.properties til at inkludere server.port-egenskaben og tildele den en port efter eget valg. Spring Boot indlæser automatisk applikationsegenskabsfilen og anvender de nødvendige konfigurationer til applikationen.

    For eksempel kan du ændre server.port-nummeret fra standardværdien 8080 til server.port= 8081.

    Hvordan konfigurerer du Log4j til logning?

    Med disse få enkle trin kan vi konfigurere Log4j til logning:

  • Opret først dit Java-projekt, og højreklik derefter på projektet. Naviger til MyEclipse->Filer->Nyt->Java-projekt for at navngive projektet, og klik på Afslut.
  • Højreklik derefter på dit Java-projektnavn og vælg Byg sti -> Konfigurer byggesti. Dette trin tilføjer log4j-filen.
  • Naviger til biblioteket, og klik på knappen Tilføj eksternt JARS, og vælg log4j-filen fra rullemenuen, der vises. Klik derefter på OK.
  • Opret en ny java-fil, som du vil kalde log4j.properties-filen, klik derefter på Afslut og tilføj denne fil til Classpath.
  • Klik på Avanceret fra klassestien, vælg derefter indstillingen Tilføj mapper, og husk at klikke på OK.
  • Du kan nu søge efter log4j.properties-filen, klikke på OK og køre projektet.
  • Tjek konsollen for output nedenfor.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    Hvad er en IoC-beholder?

    IoC (Inversion of Control) containeren er en kerne Spring container, der automatisk implementerer afhængighedsinjektion. Den instansierer klassens applikation og er ansvarlig for objekternes konfiguration og samling af de nødvendige afhængigheder.

      Sådan fastgør du et billede til toppen af ​​dit skrivebord

    Det styrer også objektets livscyklus fra dets instansiering til dets ødelæggelse.

    IoC udfører disse opgaver ved hjælp af metadatakonfiguration i Java-kode, XML og Java-annoteringer.

    Beholderen omtales som en Inversion of Control, fordi den styrer Java-objekterne og disse objekters livscyklus. Dette er ellers en udvikleropgave.

    Forklar, hvordan du opretter en Spring Boot-applikation ved hjælp af Maven

    Denne proces indebærer en række trin.

    Trin 1: Vælg typen af ​​projekt.

    Trin 2: Navngiv dit projekt for at konfigurere det, og klik derefter på knappen Afslut for at oprette projektet.

    Trin 3: Nu vil vi konfigurere pom.xml-filen fra Maven-projektet for at skabe et Spring Boot-projekt ud af det.

    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>  

    Konfigurationen involverer tilføjelse af en forælder til Maven-projektet. Dette vil erklære Maven-projektet som et underprojekt til moderprojektet.

    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>1.4.2.RELEASE</version>  
    </parent>  

    Trin 4: Tilføj derefter webafhængigheden, spring-boot-starter-web, til pom.xml.

    <dependencies>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
    </dependencies>  

    Trin 5: Tilføj projektets Java-version.

    <properties>  
        <java.version>1.8</java.version>  
    </properties> 

    Trin 6: Bemærk, at hver gang du tilføjer nye afhængigheder, skal du opdatere Maven-projektet.

    Trin 7: Gør Maven-projektet køreligt ved at oprette en Java-klasse i pakken src/main/java.

    Trin 8: Kald derefter Spring Application’s class static run-metode.

    Trin 9: Kør endelig klassen som en Java-applikation.

    Hvad er fordelene ved Spring Boot frem for Spring?

    • Spring Boots bootstrapping-evne til at kompilere kildesproget ved hjælp af Boot-initializer, en teknik kaldet bootstrapping, tillader pladsbesparelse på brugernes enheder og reducerer også applikationens indlæsningstid.
    • I modsætning til Spring tillader Spring Boot afhængighedsstyring efter tilføjelse af spring-boot-afhængigheder uden at være afhængig af den overordnede POM (parent object model) eller XML-filen.
    • Spring Boot giver også udviklere mulighed for enten at bruge annoteringer eller XML-konfigurationer uden at skulle bruge XML-konfigurationer.
    • Udviklere foretrækker Spring Boot for dens reducerede standardkode, der kræves for at konfigurere en applikation. Dette skyldes, at Spring Boot kommer med en database i hukommelsen og en indlejret Tomcat-server, hvilket reducerer boilerplate-koden. Spring har på den anden side mere kedelkode.
    • Spring Boot kræver ikke nødvendigvis WAR (web application resource) filer og kan kun stole på JAR (Java Resource), som har en lille og enklere struktur og derfor er mere nyttig for brugere og udviklere.
    • Spring Boot indlejrer også automatisk servere som Tomcat og Jetty; Derfor behøver udvikleren ikke manuelt at konfigurere serveren, som du skal gøre i foråret.

    Pagineringsprocessen opdeler data i sektioner for at spare ressourcer. Det indebærer to felter, sidestørrelsen og sidenummeret.

    Processen omfatter et par trin, herunder:

    Trin 1: Indledende opsætning
    Sammensæt en enhed, vi vil navngive Person som domæneklassen.

    @Entity 
    public class Person {
        @Id
        private long id;
        private String name; 
    }

    Trin 2: Oprettelse af lager
    Brug derefter et PersonRepository udvider PagingAndSortingRepository for at kunne få metoderne findAll(Pageable pageable) og findAll(Sort sort) til henholdsvis sidesøgning og sortering.

    public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {
        List<Product> findAllByPrice(double price, Pageable pageable);
    }

    Trin 3: Pagineringstrin
    Det første trin her involverer at oprette et PageRequest-objekt; ved at videregive sidenummeret og sidestørrelsen som anmodet, der implementerer Sideable-grænsefladen.

    Pageable firstPageWithTwoElements = PageRequest.of(0,2);
    Pageable secondPageWithThreeElements = PageRequest.of(1,3);

    Send derefter dette PageRequest-objekt til repository-metoden som en parameter.

    Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements);
    List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements) 

    Som standard vil findAll(Pageable pageable)-metoden returnere et Page-objekt.

    Forklar, hvordan du registrerer en brugerdefineret automatisk konfiguration

    Under @EnableAutoConfiguration nøglen META-INF/spring.factory-filen skal du nævne det fuldt kvalificerede navn. Dette trin registrerer autokonfigurationsklassen.

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration

    Opbygning af projektet ved hjælp af Maven vil kræve, at du placerer filen i ressourcer/META-INF-mappen.

    Hvad er bootstrapping i Spring Boot?

    Bootstrapping er processen med at udføre logik i Spring Boot-applikationen ved opstart.
    Boot initializr kompilerer kildesproget i Spring Boot. Denne proces sparer enhedens plads og reducerer også applikationens indlæsningstid.

    Sidste ord 👨‍💻

    Nå, denne artikel dækkede nogle Spring Boot-spørgsmål, som interviewere sandsynligvis vil stille dig under dit interview, og svarene for at hjælpe dig med at klare det med sikkerhed. Vi håber, du får det drømmejob!

    Du vil måske også lære et par relevante tips fra spørgsmål stillet under et Java-interview.

    Held og lykke!🙂