22 Gyakran Ismételt Spring Boot Interjú kérdés és válasz

Ön Java Spring Boot fejlesztő, aki alig várja, hogy részt vegyen egy közelgő interjúban, de nem tudja, milyen kérdésekre számítson? Azért vagyunk itt, hogy segítsünk!

Ez a cikk segít a megfelelő felkészülésben azáltal, hogy felvázol néhány gyakran ismételt Spring Boot-interjúra vonatkozó kérdést és választ, amelyeket a kérdezők felhasználhatnak az Ön tesztelésére.

Az interjúztatók stratégiai Java Spring Boot kérdésekkel tesztelik az interjúalanyok készségszintjét a kijelölt szerepükhöz kapcsolódóan. Ezért fel kell készülnie a releváns kérdésekre, és tudnia kell, hogyan válaszoljon rájuk.

Mielőtt közvetlenül az interjú kérdéseire és a hozzájuk tartozó válaszokra ugrunk, tekintsük át egy alapvető áttekintést arról, hogy mi is az a Spring Boot, és mennyire hasznos a Java fejlesztők számára.

Mi az a Java Spring Boot?

Ezt a Java-keretrendszert a kulcsfontosságú csapat 2014-ben hozta létre. A Spring Boot, amely egy nyílt forráskódú keretrendszer, hatékonyan fejleszt független, éles szintű alkalmazásokat, amelyek Java virtuális gépen (JVM) is futhatnak.

A Java fejlesztők előnyben részesítik webalkalmazások és mikroszolgáltatások fejlesztéséhez gyors és egyszerű telepítési folyamata és biztonságos konfigurációs ideje miatt.

A Spring Boot Spring-alapú alkalmazások egyszerű telepítése és konfigurálása három alapvető képességével lehetséges, amelyek a következők:

  • Autoconfiguration – amely a Spring alkalmazás automatikus konfigurálása.
  • A Spring Boot egy véleménynyilvánított megközelítést biztosít az alapértelmezett konfigurációs beállításokhoz és a szükséges függőségekhez telepítendő csomagokhoz. Ez a véleménynyilvánító megközelítés segít a projektek gyors felállításában.
  • A Sprsetupoot lehetővé teszi az alkalmazás önálló futtatását webszerver nélkül.

Hogyan segít a Spring Boot a Java fejlesztőknek?

Egyrészt a Spring Bootot használó Java-fejlesztők könnyebben konfigurálják az összes olyan összetevőt, amely egy éles szintű Spring alkalmazás fejlesztéséhez szükséges. Ez hosszú távon csökkenti a fejlesztési időt, és végül növeli a hatékonyságot.

A Spring Boot könnyen integrálható a Spring ökoszisztémájával is, amely magában foglalja a Spring JDBC-t, a Spring Data-t, a Spring Security-t és a Spring ORM-et.

A Java fejlesztők a Spring Bootot különféle adatbázisokkal is összekapcsolhatják, például az Oracle, MySQL, PostgreSQL és MongoDB adatbázisokkal.

Természetesen az XML-konfigurációkkal, Java Bean-ekkel és adatbázis-tranzakciókkal rendelkező rugalmas konfigurációk is hasznos funkciók közé tartoznak.

Ezért most, hogy rendelkezik a Spring Boot alapvető áttekintésével, tekintsünk át néhány gyakran feltett Spring Boot-interjúra vonatkozó kérdéseket és válaszokat, amelyek segítenek felkészülni az interjúra.

Spring Boot Interjú kérdések és válaszok

Milyen jellemzői vannak a Spring Bootnak?

A népszerű funkciók közül néhány:

  • A Spring Boot CLI biztosítja a Groovy-t a Spring Boot alkalmazás írásához; hosszú távon elkerülhető a kazánkód.
  • A Spring Boot naplózást és biztonsági funkciót biztosít, amely könnyedén megvédi alkalmazását a potenciális biztonsági fenyegetésektől.
  • Biztosítja a projekt releváns összetevőinek automatikus konfigurálását, elkerülve ezzel a szükségtelen WAR-fájlok kockázatát.
  • A kezdő inicializáló létrehoz egy alapértelmezett belső projektstruktúrát az Ön számára. Így nem kell manuálisan beállítania a projektstruktúrát.
  • A Spring Boot aktuátor funkció betekintést és mérőszámokat biztosít az alkalmazás futása közben.
  • Természetesen a Spring Boot egyik legfontosabb funkciója, a Starter Dependency segít összesíteni egy adott szolgáltatás gyakran használt függőségeit.
  ütemezzen be egy találkozót és küldjön meghívókat

Mik azok a Spring Boot Starterek?

A Spring Boot-indítók olyan függőségi leírók, amelyek az alkalmazás függőségeit lehetővé tevő függőségkezelési szolgáltatókat tartalmaznak. Ezek biztosítják a keretet az Auto-Dependency Resolution funkcióval. Az indítók elősegítik a könnyű és gyors fejlődést.

Mi a Spring Boot aktuátora, és mik az előnyei?

Az aktuátor a Spring Boot egyik funkciója, amely lehetővé teszi, hogy figyelemmel kísérje, mi történik az alkalmazáson belül, miközben az fut.

Hibakeresés során például használhatja az aktuátort a naplók elemzésére, lehetővé téve a hozzáférést olyan funkciókhoz, mint a CPU-használat és a beanok azonosítása.

Ezenkívül az aktuátor nem csak egyszerű hozzáférést biztosít a termelésre kész REST végpontokhoz, amelyek figyelik és kezelik az információkat, hanem adatokat is lekérnek a webről.

Mi az a kakukkfű, és hogyan kell használni a kakukkfűt?

A Thymeleaf a Java szerveroldali sablonja, amely természetes sablonelrendezést hoz létre a Spring és a HTML5 Java webalkalmazásokhoz.

A Spring Boot automatikusan elvégzi a thymeleaf konfigurálását a pom.xml fájl spring-boot-starter-thymeleaf függőségével a dinamikus webtartalom kiszolgálásához.

Ha engedélyezni szeretné a Spring Boot számára a thymeleaf sablonok vagy HTML-fájlok olvasását és megjelenítését, helyezze el a sablonokat az src/main/resources/templates mappába.

A Thymeleaf ezután elemzi az index.html fájlt, és a vezérlőosztályból átadott tényleges értékeket használja az indexfájlban elérhető dinamikus értékek helyett.

Ezt követően az üzenet azonnal megjelenik a webböngészőben, amint a Spring Boot alkalmazás fut.

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

Ismertesse a Spring Boot projekt létrehozásának folyamatát a Spring Initializer használatával.

A Spring Initializr, amely egy Spring webes eszköz, lehetővé teszi a Spring Boot projekt létrehozását néhány lépéssel a projekt részleteinek megadásával.

  • Menjen a Spring intializr oldalra, és töltse ki a beviteli mezőket.
  • A Generálás gombra kattintva elindul a projekt letöltése.
  • Bontsa ki a letöltött projektet a zip fájlból, és nyissa meg az IDE-ből. Az IDE-ben keresse meg a Fájl->Új->Projekt meglévő forrásokból->Spring-boot-app menüpontot, majd válassza ki a pom.xml fájlt. A projekt szinkronizálásához kattintson a változtatások importálása parancssorra. Ezt követően ne felejtse el megnyitni az application.properties fájlt, és módosítsa a server.port számot a server.port=7000 értékre.
  • Most futtassa az alkalmazást az src->main->java->com.gfg.Spring.boot.app címről
  • Mi az a JPA a Spring Bootban?

    Ez egy Java specifikáció, amely az Object-Relation Mapping (ORM) funkciót használja a relációs adatok kezelésére, és lehetővé teszi a Java objektum vagy a Java osztály és az alkalmazás relációs adatbázisa közötti adatokhoz való hozzáférést.

    A JPA a Java Persistent Query Language (JPQL) nevű objektumorientált lekérdezési nyelvet használja, amely platformfüggetlen is.

    A JPA lehetővé teszi a lekérdezések feldolgozását és az objektumtranzakciókat az adatbázisban az Entity Manager API használatával.

    Mi az automatikus konfigurálás a Spring Bootban?

    Az automatikus konfigurálás az alkalmazásokhoz hozzáadott jar-függőségek segítségével automatizálja a Spring Boot alkalmazás konfigurációját.

    Az alkalmazás osztályútvonalában elérhető függőségektől függően az automatikus konfiguráció deklarálja többek között a rugóspecifikus modul beépített objektumait, beleértve a JPA-t és a rugóbiztonságot.

    Mik azok a tavaszi megjegyzések?

    A tavaszi megjegyzések olyan metaadatokra vonatkoznak, amelyek egy programrészletről nyújtanak információt, és kiegészítő adatokat adnak hozzá a programhoz. A kódösszetevők, beleértve az osztályokat és a metódusokat is, gyakran annotációkhoz kapcsolódnak.

    A megjegyzések nem befolyásolják közvetlenül a program működését vagy a lefordított kód későbbi műveleteit.
    Szintaxisuk a „@” szimbólummal kezdődik.

    A Spring Boot hat fő megjegyzéstípust kínál, amelyek a következők:

    • Spring Core Annotations
    • Spring Data Annotations
    • Spring Bean Annotations
    • Tavaszi webes megjegyzések
    • Tavaszi ütemezési megjegyzések
    • Spring Boot Annotations
      Az adatbázis-modellezés és -tervezés egyszerű ezzel a 8 eszközzel

    Mit jelent a Spring Data REST?

    A Spring Data REST minimális kód használatával teszi elérhetővé a Spring Data Resources körüli erőforrásokat a RESTful-ban.

    A következő példa a POST metódust használja a tartalom lekérésére a http://localhost/example URL-címen és a Content-Type: application/json címen fejlécként.

    Kérjen tartalmat:

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

    A válasz tartalma:

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

    Ezek előre definiált eszközök mélyreható halmaza, amelyek tulajdonságait a megfelelő fejlesztői környezetekre alkalmazzák a fejlesztés megkönnyítése és a fejlesztési idő megtakarítása érdekében.

    Amikor módosítja a kódot a Spring Boot alkalmazásban, a Spring Boot DevTools szolgáltatás automatikusan újraindul. Ezért megkímélheti az alkalmazás manuális újraindításától, amikor minden alkalommal módosítja a kódot.

    Mi az a Spring Data?

    A tavaszi adatok célja, hogy a fejlesztők könnyű hozzáférést biztosítsanak az olyan adathozzáférési technológiákhoz, mint a relációs és nem relációs adatok, valamint a felhőalapú adatszolgáltatások, mivel továbbra is megőrzik az alapul szolgáló adattár különleges tulajdonságait.

    Hogyan lehet megmondani, hogy az automatikus konfiguráció visszalépjen, ha egy bab létezik?

    Itt a @ConditionalOnMissingBean megjegyzést fogja használni, amely a következőképpen tartalmazza a nevet és az értéket.

    • value attribútum tárolja az ellenőrizendő babtípust
    • name attribútum, amely megnevezi az ellenőrizendő babot

    Hogyan lehet adatokat lekérni a Spring Boot adatbázisából?

    A következő lépésekkel érhetjük el az adatokat egy MySQL adatbázisból a Spring Boot alkalmazásunkhoz.

    1. lépés: Használja a create DATABASE person parancsot az adatbázis létrehozásához a MySQL-ben.

    2. lépés: Hozzon létre egy táblázatot az adatbázison belül:

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

    3. lépés: Most hozzon létre egy Spring Boot alkalmazást, majd adja hozzá a JDBC-t, a MySQL-t és a szükséges webfüggőségeket.

    4. lépés: Állítsa be az adatbázist az application.properties fájlból az alábbiak szerint.

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

    5. lépés: Ezután kezeljük a vezérlő osztályban lévő kéréseket:

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

    Végül futtassa az alkalmazást, miközben ellenőrzi az adatbázis-bejegyzést az elért adatok megtekintéséhez.

    Miért van szükségünk tavaszi profilokra?

    A tavaszi profilok lehetővé teszik az alkalmazás konfigurációjának elkülönítését a különböző részekből, és felhasználják őket konkrét fejlesztésekhez.

    A Spring Profiles emellett megkíméli a fejlesztőt a környezet-specifikus külső konfigurációk kezelésének fájdalmától, ha a Spring Profiles nem áll rendelkezésre.

    Ezenkívül ez megnehezítené a szinkronban tartást, és több gyári komponens megírását jelentené, amelyek az adott környezet-specifikus paraméterektől függően bizonyos szükséges dolgokat hasznosítanak.

    Meg tudjuk változtatni a beágyazott Tomcat szerver portját a Spring rendszerindításkor?

    Igen.

    Ez az application.properties fájl manipulálásával történik, hogy tartalmazza a server.port tulajdonságot, és hozzárendeljen egy tetszőleges portot. A Spring Boot automatikusan betölti az alkalmazás tulajdonságfájlját, és alkalmazza a szükséges konfigurációkat az alkalmazásra.

    Például megváltoztathatja a server.port számát az alapértelmezett 8080-as értékről a server.port= 8081-re.

    Hogyan kell beállítani a Log4j-t naplózáshoz?

    Ezzel a néhány egyszerű lépéssel beállíthatjuk a Log4j-t a naplózáshoz:

  • Először hozza létre a Java projektet, majd kattintson a jobb gombbal a projektre. Keresse meg a MyEclipse->Fájl->Új->Java-projektet a projekt elnevezéséhez, majd kattintson a Befejezés gombra.
  • Ezután kattintson a jobb gombbal a Java projekt nevére, és válassza a Build Path -> Configure Build Path menüpontot. Ez a lépés hozzáadja a log4j fájlt.
  • Keresse meg a könyvtárat, kattintson a Külső JARS hozzáadása gombra, és válassza ki a log4j fájlt a megjelenő legördülő menüből. Ezután kattintson az OK gombra.
  • Hozzon létre egy új java fájlt, amelyet log4j.properties fájlnak fog hívni, majd kattintson a Befejezés gombra, és adja hozzá ezt a fájlt az osztályútvonalhoz.
  • Kattintson a Speciális elemre az Osztályútvonalban, majd válassza a Mappák hozzáadása lehetőséget, és ne felejtse el kattintani az OK gombra.
  • Most megkeresheti a log4j.properties fájlt, kattintson az OK gombra, és futtassa a projektet.
  • Ellenőrizze az alábbi kimenetet a konzolon.
  • [main] DEBUG Example – Hello this is a debug message
    [main] INFO Example – Hello this is an info message

    Mi az IoC konténer?

    Az IoC (Inversion of Control) tároló egy rugós magtartály, amely automatikusan megvalósítja a függőségi befecskendezést. Példányosítja az osztály alkalmazását, és felelős az objektumok konfigurációjáért és a szükséges függőségek összeállításáért.

      Mi az az HBO Max, és megéri-e fizetni?

    Ezenkívül kezeli az objektum életciklusát a példányosítástól a megsemmisítésig.

    Az IoC ezeket a feladatokat metaadat-konfiguráció segítségével hajtja végre Java kódban, XML-ben és Java megjegyzésekben.

    A tárolót a vezérlés megfordításának nevezik, mivel ez vezérli a Java objektumokat és ezeknek az objektumoknak az életciklusát. Ez egyébként a fejlesztő feladata.

    Magyarázza el, hogyan hozhat létre Spring Boot alkalmazást a Maven használatával

    Ez a folyamat lépések sorozatát foglalja magában.

    1. lépés: Válassza ki a projekt típusát.

    2. lépés: Nevezze el a projektet a konfiguráláshoz, majd kattintson a Befejezés gombra a projekt létrehozásához.

    3. lépés: Most beállítjuk a Maven projekt pom.xml fájlját, hogy egy Spring Boot projektet hozzunk létre belőle.

    pom.xml fájl:

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

    A konfiguráció magában foglalja egy szülő hozzáadását a Maven projekthez. Ez a Maven projektet a szülőprojekt alárendelt projektjeként nyilvánítja.

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

    4. lépés: Ezután adja hozzá a webfüggőséget, a spring-boot-starter-web, a pom.xml fájlhoz.

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

    5. lépés: Adja hozzá a projekt Java verzióját.

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

    6. lépés: Vegye figyelembe, hogy minden alkalommal, amikor új függőséget ad hozzá, frissítenie kell a Maven projektet.

    7. lépés: Tegye futtathatóvá a Maven projektet egy Java osztály létrehozásával az src/main/java csomagban.

    8. lépés: Ezután hívja meg a Spring Application osztályú statikus futtatási metódusát.

    9. lépés: Végül futtassa az osztályt Java alkalmazásként.

    Melyek a Spring Boot előnyei a tavaszihoz képest?

    • A Spring Boot rendszerindítási képessége, amellyel a forrásnyelvet Boot inicializálóval, a bootstrapping nevű technikával fordítja le, helytakarékosságot tesz lehetővé a felhasználók eszközein, és csökkenti az alkalmazás betöltési idejét is.
    • A Spring-től eltérően a Spring Boot lehetővé teszi a függőségek kezelését a tavaszi rendszerindítási függőségek hozzáadása után anélkül, hogy a szülő POM-tól (szülőobjektum-modelltől) vagy XML-fájltól függne.
    • A Spring Boot lehetővé teszi a fejlesztők számára, hogy megjegyzéseket vagy XML-konfigurációkat használjanak XML-konfigurációk használata nélkül.
    • A fejlesztők előnyben részesítik a Spring Bootot, mivel az alkalmazás beállításához szükséges csökkentett alapkódja miatt. Ennek az az oka, hogy a Spring Boot egy memórián belüli adatbázissal és egy beágyazott Tomcat-kiszolgálóval érkezik, csökkentve a rendszerkódot. A tavasznak viszont több a kazánkódja.
    • A Spring Boot nem feltétlenül igényel WAR (web Application Resource) fájlokat, és csak a JAR-ra (Java Resource) támaszkodhat, amelynek kicsi és egyszerűbb a szerkezete, ezért hasznosabb a felhasználók és a fejlesztők számára.
    • A Spring Boot automatikusan beágyaz olyan szervereket is, mint a Tomcat és a Jetty; ezért a fejlesztőnek nem kell manuálisan beállítania a szervert, ahogy azt tavasszal kellene tennie.

    A lapozási folyamat szakaszokra osztja az adatokat az erőforrások megtakarítása érdekében. Két mezőt tartalmaz, az oldalméretet és az oldalszámot.

    A folyamat néhány lépésből áll, többek között:

    1. lépés: Kezdeti beállítás
    A Consisetupn entitást tartományosztálynak nevezzük el.

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

    2. lépés: Repository létrehozása
    Ezután a PersonRepository kiterjeszti a PagingAndSortingRepository-t, hogy megkapja a findAll(Pageable pageable) és findAll(Sort sort) metódusokat a lapozáshoz és a rendezéshez.

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

    3. lépés: Lapozási lépés
    Az első lépés itt egy PageRequest objektum létrehozása; az oldalszám és az oldalméret megadásával, amely a Pageable felületet megvalósítja.

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

    Ezután adja át ezt a PageRequest objektumot a repository metódusnak paraméterként.

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

    Alapértelmezés szerint a findAll(Pageable pageable) metódus egy Page objektumot ad vissza.

    Magyarázza el, hogyan regisztrálhat egyéni automatikus konfigurációt

    Az @EnableAutoConfiguration kulcs META-INF/spring.factories fájl alatt adja meg a teljes képzésű nevet. Ez a lépés regisztrálja az automatikus konfigurációs osztályt.

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

    A projekt Maven használatával történő felépítéséhez el kell helyeznie a fájlt az erőforrások/META-INF könyvtárba.

    Mi az a bootstrapping a Spring Bootban?

    A Bootstrapping az a folyamat, amely a Spring Boot alkalmazás logikáját hajtja végre indításkor.
    A Boot inicializáló a forrásnyelvet Spring Bootban fordítja le. Ez a folyamat helyet takarít meg az eszközön, és csökkenti az alkalmazás betöltési idejét is.

    Utolsó szavak 👨‍💻

    Nos, ez a cikk bemutatott néhány Spring Boot-kérdést, amelyet a kérdezőbiztosok valószínűleg feltesznek Önnek az interjú során, és a válaszokat, amelyek segítenek magabiztosan megoldani. Reméljük, megkapja álmai állását!

    Érdemes megtudni néhány releváns tippet a Java-interjú során feltett kérdésekből.

    Sok sikert!🙂