22 Întrebări și răspunsuri frecvente la interviu Spring Boot

Sunteți un dezvoltator Java Spring Boot și așteptați cu nerăbdare să obțineți un interviu viitor, dar nu sunteți sigur la ce întrebări să vă așteptați? Suntem aici sa ajutam!

Acest articol vă va ajuta să vă pregătiți în mod adecvat, subliniind mai multe întrebări frecvente la interviu Spring Boot și răspunsuri pe care intervievatorii le pot folosi pentru a vă testa.

Intervievatorii folosesc întrebări strategice Java Spring Boot pentru a testa nivelurile de abilități ale intervievaților relevante pentru rolul lor desemnat. Prin urmare, trebuie să vă pregătiți cu întrebări relevante și să știți cum să le răspundeți.

Înainte de a trece direct la întrebările interviului și la răspunsurile lor corespunzătoare, haideți să acoperim o prezentare generală de bază a ce este Spring Boot și cât de util este pentru dezvoltatorii Java.

Ce este Java Spring Boot?

Acest cadru Java este o creație a echipei esențiale în 2014. Spring Boot, care este un cadru open-source, dezvoltă eficient aplicații independente, la nivel de producție și care pot rula și pe o mașină virtuală Java (JVM).

Dezvoltatorii Java îl preferă pentru dezvoltarea de aplicații web și microservicii pentru procesul său de configurare rapid și ușor și timpul de configurare sigur.

Configurarea și configurarea ușoară a aplicațiilor bazate pe Spring de către Spring Boot sunt posibile cu cele trei capabilități de bază, care includ:

  • Autoconfiguration – care este o configurație automată a aplicației Spring.
  • Spring Boot oferă o abordare cu opinie asupra setărilor implicite de configurare de utilizat și a pachetelor de instalat pentru dependențele necesare. Această abordare cu opinie ajută la configurarea rapidă a proiectelor.
  • Sprsetupoot vă permite să rulați aplicația în mod independent, fără a fi nevoie de un server web.

Cum este util Spring Boot pentru dezvoltatorii Java?

Pe de o parte, dezvoltatorii Java care folosesc Spring Boot le este mai ușor cu configurarea automată a tuturor componentelor necesare pentru a dezvolta o aplicație Spring de producție. Acest lucru, pe termen lung, reduce timpul de dezvoltare și în cele din urmă crește eficiența acestora.

Spring Boot se integrează cu ușurință în ecosistemul Spring, care include Spring JDBC, Spring Data, Spring Security și Spring ORM.

Dezvoltatorii Java pot conecta Spring Boot cu diferite baze de date precum Oracle, MySQL, PostgreSQL și MongoDB, printre altele.

Desigur, configurațiile flexibile cu configurații XML, Java Beans și tranzacții cu baze de date sunt printre alte caracteristici utile.

Prin urmare, acum că aveți o prezentare generală de bază a Spring Boot, permiteți-ne să luăm în considerare câteva dintre întrebările și răspunsurile frecvente la interviul Spring Boot care vă vor ajuta să vă pregătiți pentru interviul.

Întrebări și răspunsuri la interviu Spring Boot

Care sunt câteva caracteristici ale Spring Boot?

Unele dintre aceste caracteristici populare includ:

  • CLI Spring Boot oferă Groovy pentru scrierea aplicației Spring Boot; pe termen lung, codul standard este evitat.
  • Spring Boot oferă înregistrare și o caracteristică de securitate care vă protejează cu ușurință aplicația de potențiale amenințări de securitate.
  • Oferă configurarea automată a componentelor relevante pentru proiectul dvs., evitând astfel riscul unor fișiere WAR inutile.
  • Inițializatorul de pornire stabilește o structură internă implicită de proiect pentru dvs. În acest fel, nu trebuie să configurați manual structura proiectului.
  • Funcția de acționare Spring Boot oferă acces la informații și valori pe măsură ce aplicația rulează.
  • Desigur, una dintre caracteristicile cheie Spring Boot, Starter Dependency, ajută la agregarea dependențelor utilizate în mod obișnuit ale unei anumite caracteristici.
  Găzduiește mai multe domenii pe un server sau IP cu Apache sau Nginx

Ce sunt Spring Boot Starters?

Începătorii Spring Boot sunt descriptori de dependență care includ un set de furnizori de gestionare a dependențelor care activează dependențele aplicației. Ele oferă cadrul cu Rezoluție Auto-Dependență. Începătorii îmbunătățesc dezvoltarea ușoară și rapidă.

Ce este un actuator în Spring Boot și care sunt avantajele acestuia?

Actuatorul este una dintre caracteristicile Spring Boot care vă permite să monitorizați ceea ce se întâmplă în interiorul unei aplicații în timp ce rulează.

În timpul depanării, de exemplu, puteți utiliza actuatorul pentru analiza jurnalelor, permițând accesul la caracteristici precum utilizarea CPU și identificarea bean-urilor.

În plus, actuatorul nu numai că oferă acces ușor la punctele finale REST pregătite pentru producție, care monitorizează și gestionează informațiile, ci și preia date de pe web.

Ce este thymeleaf și cum se folosește thymeleaf?

Thymeleaf este șablonul Java pe partea de server care creează un aspect natural de șablon atât pentru aplicațiile web Spring, cât și pentru HTML5 Java.

Spring Boot va efectua o configurare automată a thymeleaf folosind dependența spring-boot-starter-thymeleaf din fișierul pom.xml pentru a servi conținutul web dinamic.

Pentru a permite Spring Boot să citească și să redea șabloanele thymeleaf sau fișierele HTML, plasați șabloanele în src/main/resources/templates.

Thymeleaf analizează apoi fișierul index.html și folosește valorile reale pe care le transmiteți din clasa controlerului în locul valorilor dinamice disponibile în fișierul index.

După aceasta, mesajul se redă în browserul web de îndată ce se rulează aplicația Spring Boot.

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

Descrieți procesul de creare a unui proiect Spring Boot folosind Spring Initializer.

Spring Initializr, care este un instrument web Spring, vă permite să creați un proiect Spring Boot folosind câțiva pași, oferind detaliile proiectului.

  • Mergeți la Spring initializr și completați câmpurile de introducere.
  • Făcând clic pe butonul Generare va începe descărcarea proiectului.
  • Extrageți proiectul descărcat din fișierul zip și deschideți-l din IDE. Din IDE, navigați la Fișier->Nou->Proiect din surse existente->Spring-boot-app, apoi selectați fișierul pom.xml. Faceți clic pe solicitarea modificărilor de import, astfel încât proiectul să se sincronizeze. După aceasta, nu uitați să accesați fișierul application.properties și să editați numărul server.port în server.port=7000.
  • Acum, rulați aplicația din src->main->java->com.gfg.Spring.boot.app
  • Ce este JPA în Spring Boot?

    Aceasta este o specificație în Java care utilizează Object-Relation Mapping (ORM) pentru a gestiona datele relaționale și permite accesul la date dintre obiectul Java sau clasa Java și baza de date relațională a aplicației.

    JPA utilizează Java Persistent Query Language (JPQL), un limbaj de interogare orientat pe obiecte care este, de asemenea, independent de platformă.

    JPA permite procesarea interogărilor și tranzacțiile cu obiecte în baza de date folosind API-ul Entity Manager pe care îl oferă.

    Ce este configurarea automată în Spring Boot?

    Configurarea automată încearcă să automatizeze configurația aplicației Spring Boot folosind dependențele jar pe care le adăugați la aplicații.

    În funcție de dependențele disponibile în Classpath al aplicației, auto-configurarea va declara obiectele încorporate ale modulului specific Spring, inclusiv JPA și securitatea Spring, printre altele.

    Ce sunt adnotările de primăvară?

    Adnotările de primăvară se referă la metadate care oferă informații despre un fragment de program și adaugă date suplimentare la programul respectiv. Componentele codului, inclusiv clasele și metodele, sunt adesea asociate cu adnotări.

    Adnotările nu afectează direct funcționarea programului sau acțiunea ulterioară a codului compilat.
    Sintaxa lor începe cu simbolul „@”.

      Cum să remediați Outlook continuă să trimită e-mailuri în dosarul Junk sau Spam

    Spring Boot oferă șase tipuri principale de adnotări care includ:

    • Adnotări de primăvară
    • Adnotări de date de primăvară
    • Adnotări de fasole de primăvară
    • Adnotări Web de primăvară
    • Adnotări de programare de primăvară
    • Adnotări de primăvară

    Ce înseamnă Spring Data REST?

    Spring Data REST expune resursele în RESTful care se află în jurul Spring Data Resources folosind cod minim.

    Următorul exemplu utilizează metoda POST pentru a solicita conținut folosind http://localhost/example ca URL și Content-Type: application/json ca Antet.

    Solicitați conținut:

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

    Conținutul răspunsului:

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

    Acestea sunt un set profund de instrumente predefinite ale căror proprietăți sunt aplicate mediilor de dezvoltare respective pentru a ușura dezvoltarea și a economisi timpul de dezvoltare.

    Ori de câte ori schimbați codul în aplicația Spring Boot, caracteristica Spring Boot DevTools repornește automat. Prin urmare, vă scutește de problemele de a reporni manual aplicația de fiecare dată când vă modificați codul.

    Ce este Spring Data?

    Spring data caută să ofere dezvoltatorilor acces ușor la tehnologii de acces la date, cum ar fi datele relaționale și non-relaționale și serviciile de date bazate pe cloud, deoarece continuă să dețină trăsăturile speciale ale depozitului de date de bază.

    Cum să-i spui unei configurații automate să se retragă atunci când există un bob?

    Aici veți folosi adnotarea @ConditionalOnMissingBean, care include numele și atributul valoare, după cum urmează.

    • atributul value stochează tipul de fasole de verificat
    • atribut name care denumește fasolea de verificat

    Cum se obține date din baza de date în Spring Boot?

    Putem accesa datele dintr-o bază de date MySQL la aplicația noastră Spring Boot, urmând pașii următori.

    Pasul 1: Utilizați comanda create DATABASE person pentru a crea baza de date în MySQL.

    Pasul 2: În baza de date, creați un tabel:

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

    Pasul 3: Acum creați o aplicație Spring Boot, apoi adăugați la ea JDBC, MySQL și dependențele web necesare.

    Pasul 4: Configurați baza de date din fișierul application.properties ca mai jos.

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

    Pasul 5: În continuare, să gestionăm cererile din clasa controlerului:

    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";
       }
    }

    În cele din urmă, rulați aplicația în timp ce verificați intrarea în baza de date pentru a vedea datele accesate.

    De ce avem nevoie de profile Spring?

    Spring Profiles permit segregarea configurației unei aplicații a diferitelor părți și le folosesc pentru dezvoltări specifice.

    Spring Profiles salvează, de asemenea, dezvoltatorului durerea de a gestiona configurațiile externe specifice mediului dacă Spring Profiles nu erau disponibile.

    În plus, acest lucru ar face dificilă menținerea sincronizării și ar însemna necesitatea suplimentară de a scrie mai multe componente asemănătoare fabricii care ar folosi anumite lucruri necesare în funcție de parametrii specifici mediului specific.

    Putem schimba portul serverului Tomcat încorporat în Spring Boot?

    Da putem.

    Acest lucru se face prin manipularea fișierului application.properties pentru a include proprietatea server.port și alocarea acestuia unui port la alegere. Spring Boot încarcă automat fișierul cu proprietățile aplicației și aplică configurațiile necesare aplicației.

    De exemplu, puteți modifica numărul server.port de la valoarea implicită de 8080 la server.port= 8081.

    Cum configurați Log4j pentru înregistrare?

    Cu acești câțiva pași simpli, putem configura Log4j pentru înregistrare:

  • Mai întâi, creați-vă proiectul Java, apoi faceți clic dreapta pe proiect. Navigați la MyEclipse->File->New->Java Project pentru a denumi proiectul și faceți clic pe Terminare.
  • Apoi, faceți clic dreapta pe numele proiectului dvs. Java și selectați Build Path -> Configure Build Path. Acest pas va adăuga fișierul log4j.
  • Navigați la bibliotecă și faceți clic pe butonul Adăugați borcane externe și selectați fișierul log4j din meniul derulant care apare. Apoi faceți clic pe OK.
  • Creați un nou fișier java pe care îl veți numi fișierul log4j.properties, apoi faceți clic pe Terminare și adăugați acest fișier la Classpath.
  • Faceți clic pe Avansat din Classpath, apoi selectați opțiunea Add Folders și nu uitați să faceți clic pe OK.
  • Acum puteți căuta fișierul log4j.properties, faceți clic pe OK și rulați proiectul.
  • Verificați consola pentru rezultatul de mai jos.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    Ce este un container IoC?

    Containerul IoC (Inversion of Control) este un container Spring de bază care implementează automat injecția de dependență. Instanțiază aplicația clasei și este responsabil pentru configurarea obiectelor și asamblarea dependențelor necesare.

      Caracteristici și comparație de performanță în 2022

    De asemenea, gestionează ciclul de viață al obiectului de la instanțiere până la distrugere.

    IoC efectuează aceste sarcini utilizând configurarea metadatelor în cod Java, XML și adnotări Java.

    Containerul este denumit o inversare a controlului deoarece controlează obiectele Java și ciclurile de viață ale acestor obiecte. În rest, aceasta este sarcina unui dezvoltator.

    Explicați cum să creați o aplicație Spring Boot folosind Maven

    Acest proces presupune o serie de pași.

    Pasul 1: Selectați tipul de proiect.

    Pasul 2: Denumiți-vă proiectul pentru a-l configura, apoi faceți clic pe butonul de finalizare pentru a crea proiectul.

    Pasul 3: Acum, vom configura fișierul pom.xml din proiectul Maven pentru a crea un proiect Spring Boot din acesta.

    fișier pom.xml:

    <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>  

    Configurația implică adăugarea unui părinte la proiectul Maven. Acest lucru va declara proiectul Maven ca proiect secundar pentru proiectul părinte.

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

    Pasul 4: Apoi, adăugați dependența web, spring-boot-starter-web, la pom.xml.

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

    Pasul 5: Adăugați versiunea Java a proiectului.

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

    Pasul 6: Rețineți că de fiecare dată când adăugați noi dependențe, trebuie să actualizați proiectul Maven.

    Pasul 7: Faceți rulabil proiectul Maven prin crearea unei clase Java în pachetul src/main/java.

    Pasul 8: Apoi, apelați metoda de rulare statică a clasei aplicației Spring.

    Pasul 9: În sfârșit, rulați clasa ca o aplicație Java.

    Care sunt avantajele Spring Boot față de Spring?

    • Capacitatea de bootstrapping a Spring Boot de a compila limba sursă folosind Boot initializer, o tehnică numită bootstrapping, permite economisirea spațiului pe dispozitivele utilizatorilor și, de asemenea, reduce timpul de încărcare a aplicației.
    • Spre deosebire de Spring, Spring Boot permite gestionarea dependențelor după adăugarea dependențelor spring-boot fără a depinde de fișierul POM părinte (model de obiect părinte) sau XML.
    • Spring Boot permite, de asemenea, dezvoltatorilor să utilizeze fie adnotări, fie configurații XML fără a fi nevoie să utilizeze configurații XML.
    • Dezvoltatorii preferă Spring Boot pentru codul său standard redus necesar pentru a configura o aplicație. Acest lucru se datorează faptului că Spring Boot vine cu o bază de date în memorie și un server Tomcat încorporat, scăzând codul standard. Spring, pe de altă parte, are mai mult cod boilerplate.
    • Spring Boot nu necesită neapărat fișiere WAR (resurse de aplicație web) și se poate baza doar pe JAR (resurse Java), care are o structură mică și mai simplă și, prin urmare, este mai utilă utilizatorilor și dezvoltatorilor.
    • Spring Boot încorporează automat servere precum Tomcat și Jetty; prin urmare, dezvoltatorul nu trebuie să configureze manual serverul așa cum ar trebui să faci în Spring.

    Procesul de paginare împarte datele în secțiuni pentru a economisi resurse. Acesta implică două câmpuri, dimensiunea paginii și numărul paginii.

    Procesul presupune câțiva pași, printre care:

    Pasul 1: Configurare inițială
    Consisetupn entitate vom numi Person ca clasa de domeniu.

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

    Pasul 2: Crearea depozitului
    Apoi, utilizați PersonRepository extinde PagingAndSortingRepository pentru a putea obține metodele findAll(Pageable pageable) și findAll(Sort sort) pentru paginare și, respectiv, sortare.

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

    Pasul 3: Etapa de paginare
    Primul pas aici implică crearea unui obiect PageRequest; prin transmiterea numărului paginii și a dimensiunii paginii așa cum este cerut, care implementează interfața Pageable.

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

    Apoi treceți acest obiect PageRequest la metoda de depozit ca parametru.

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

    În mod implicit, metoda findAll(Pageable pageable) va returna un obiect Page.

    Explicați cum să înregistrați o configurație automată personalizată

    Sub fișierul @EnableAutoConfiguration key META-INF/spring.factories, menționați numele complet calificat. Acest pas înregistrează clasa de auto-configurare.

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

    Construirea proiectului folosind Maven va necesita să plasați fișierul în directorul resurse/META-INF.

    Ce este bootstrapping-ul în Spring Boot?

    Bootstrapping este procesul de executare a logicii în aplicația Spring Boot la pornire.
    Boot initializr compilează limba sursă în Spring Boot. Acest proces economisește spațiul pe dispozitiv și, de asemenea, reduce timpul de încărcare a aplicației.

    Cuvinte finale 👨‍💻

    Ei bine, acest articol a acoperit câteva întrebări pe care intervievatorii vi le vor pune probabil în timpul interviului și răspunsurile pentru a vă ajuta să reușiți cu încredere. Sperăm să obțineți locul de muncă de vis!

    De asemenea, poate doriți să aflați câteva sfaturi relevante din întrebările puse în timpul unui interviu Java.

    Mult succes!🙂