Ö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.
Tartalomjegyzék
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.
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.
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
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:
[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.
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
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!🙂