Jste vývojář Java Spring Boot a těšíte se na nadcházející rozhovor, ale nejste si jisti, jaké otázky můžete očekávat? Jsme tu, abychom vám pomohli!
Tento článek vám pomůže dostatečně se připravit tím, že nastíní několik často kladených otázek a odpovědí na pohovor Spring Boot, které mohou tazatelé použít k otestování.
Tazatelé používají strategické Java Spring Boot otázky, aby otestovali úroveň dovedností dotazovaných relevantní pro jejich určenou roli. Proto je třeba se připravit na relevantní otázky a vědět, jak na ně odpovědět.
Než přejdeme přímo k otázkám rozhovoru a jejich odpovídajícím odpovědím, pokryjeme základní přehled toho, co je Spring Boot a jak užitečný je pro vývojáře v Javě.
Table of Contents
Co je Java Spring Boot?
Tento rámec Java vytvořil stěžejní tým v roce 2014. Spring Boot, což je rámec s otevřeným zdrojovým kódem, efektivně vyvíjí aplikace, které jsou nezávislé, na produkční úrovni a mohou také běžet na Java Virtual Machine (JVM).
Vývojáři Java jej preferují pro vývoj webových aplikací a mikroslužeb pro jeho rychlý a snadný proces nastavení a bezpečnou dobu konfigurace.
Snadné nastavení a konfigurace aplikací založených na Springu Spring Boot jsou možné díky třem základním funkcím, které zahrnují:
- Autoconfiguration – což je automatická konfigurace aplikace Spring.
- Spring Boot poskytuje názorový přístup k výchozím nastavením konfigurace, které se mají použít, ak balíčkům, které se mají nainstalovat pro požadované závislosti. Tento názorový přístup pomáhá při rychlém nastavení projektů.
- Sprsetupoot vám umožní nezávisle spouštět vaši aplikaci bez potřeby webového serveru.
Jak je Spring Boot užitečný vývojářům Java?
Za prvé, vývojáři Java používající Spring Boot to mají snazší díky automatické konfiguraci všech komponent potřebných k vývoji produkční Spring aplikace. To z dlouhodobého hlediska zkracuje dobu vývoje a nakonec zvyšuje jejich efektivitu.
Spring Boot se také snadno integruje s ekosystémem Spring, který zahrnuje Spring JDBC, Spring Data, Spring Security a Spring ORM.
Vývojáři Java mohou také propojit Spring Boot s různými databázemi, jako jsou mimo jiné Oracle, MySQL, PostgreSQL a MongoDB.
Mezi další užitečné funkce patří samozřejmě flexibilní konfigurace s konfiguracemi XML, Java Beans a databázovými transakcemi.
Nyní, když máte základní přehled o Spring Boot, dovolte nám zvážit některé z často kladených otázek a odpovědí na pohovor Spring Boot, které vám pomohou připravit se na pohovor.
Otázky a odpovědi na pohovor Spring Boot
Jaké jsou některé funkce Spring Boot?
Některé z těchto oblíbených funkcí zahrnují:
- Spring Boot CLI poskytuje Groovy pro psaní aplikace Spring Boot; z dlouhodobého hlediska se vyhneme standardnímu kódu.
- Spring Boot poskytuje protokolování a bezpečnostní funkci, která snadno ochrání vaši aplikaci před potenciálními bezpečnostními hrozbami.
- Poskytuje automatickou konfiguraci příslušných komponent pro váš projekt, čímž se vyhnete riziku zbytečných souborů WAR.
- Starter Initializer pro vás stanoví výchozí vnitřní strukturu projektu. Tímto způsobem nemusíte ručně nastavovat strukturu projektu.
- Funkce ovladače Spring Boot poskytuje přístup k přehledům a metrikám během běhu aplikace.
- Jedna z klíčových funkcí Spring Boot, Starter Dependency, samozřejmě pomáhá agregovat běžně používané závislosti konkrétní funkce.
Co jsou Spring Boot Starters?
Spouštěče Spring Boot jsou deskriptory závislostí, které zahrnují sadu poskytovatelů správy závislostí, kteří umožňují závislosti aplikace. Poskytují rámec s Auto-Dependency Resolution. Startéry umožňují snadný a rychlý vývoj.
Co je aktuátor v Spring Boot a jaké jsou jeho výhody?
Akční člen je jednou z funkcí Spring Boot, která vám umožňuje sledovat, co se děje uvnitř aplikace během jejího běhu.
Například během ladění můžete aktuátor použít k analýze protokolů, které umožňují přístup k funkcím, jako je využití procesoru a identifikace fazolí.
Pohon navíc poskytuje nejen snadný přístup ke koncovým bodům REST připraveným pro výrobu, které monitorují a spravují informace, ale také získává data z webu.
Co je tymián a jak se používá?
Thymeleaf je šablona Java na straně serveru, která vytváří přirozené rozložení šablon pro webové aplikace Spring i HTML5 Java.
Spring Boot provede automatickou konfiguraci thymeleaf pomocí závislosti spring-boot-starter-thymeleaf v souboru pom.xml pro poskytování dynamického webového obsahu.
Aby Spring Boot mohl číst a vykreslovat šablony thymeleaf nebo soubory HTML, umístěte šablony do src/main/resources/templates.
Thymeleaf poté analyzuje soubor index.html a místo dynamických hodnot dostupných v indexovém souboru použije skutečné hodnoty, které předáte z třídy kontroleru.
Poté se zpráva vykreslí ve webovém prohlížeči, jakmile se spustí aplikace Spring Boot.
org.springframework.boot spring-boot-starter-thymeleaf
Popište proces vytváření projektu Spring Boot pomocí Spring Initializer.
Spring Initializr, což je webový nástroj Spring, umožňuje vytvořit projekt Spring Boot pomocí několika kroků poskytnutím podrobností o projektu.
Co je JPA v Spring Boot?
Toto je specifikace v Javě, která používá Object-Relation Mapping (ORM) ke správě relačních dat a umožňuje přístup k datům mezi objektem Java nebo třídou Java a relační databází aplikace.
JPA používá jazyk Java Persistent Query Language (JPQL), objektově orientovaný dotazovací jazyk, který je také nezávislý na platformě.
JPA umožňuje zpracování dotazů a transakcí objektů proti databázi pomocí Entity Manager API, které poskytuje.
Co je automatická konfigurace ve Spring Boot?
Automatická konfigurace se snaží automatizovat konfiguraci aplikace Spring Boot pomocí závislostí jar, které přidáte do aplikací.
V závislosti na dostupných závislostech v Classpath aplikace bude automatická konfigurace deklarovat mimo jiné vestavěné objekty modulu specifického pro pružiny, včetně JPA, a zabezpečení pružin.
Co jsou jarní anotace?
Jarní anotace odkazují na metadata nabízející informace o fragmentu programu a přidávají do tohoto programu doplňková data. Komponenty kódu, včetně tříd a metod, jsou často spojeny s anotacemi.
Anotace přímo neovlivňují činnost programu ani následnou akci zkompilovaného kódu.
Jejich syntaxe začíná symbolem ‚@‘.
Spring Boot poskytuje šest hlavních typů anotací, které zahrnují:
- Jarní základní anotace
- Jarní anotace dat
- Jarní poznámky o fazolích
- Jarní webové anotace
- Jarní poznámky k plánování
- Spring Boot Anotace
Co znamená Spring Data REST?
Spring Data REST zpřístupňuje prostředky v RESTful, které jsou kolem Spring Data Resources, pomocí minimálního kódu.
Následující příklad používá metodu POST k vyžádání obsahu pomocí http://localhost/example jako URL a Content-Type: application/json jako záhlaví.
Obsah požadavku:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 }
Obsah odpovědi:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 "_links": { "self": { "href": "http://localhost:8080/example/1" }, "person": { "href": "http://localhost:8080/example/1" } } }
Jedná se o hlubokou sadu předdefinovaných nástrojů, jejichž vlastnosti jsou aplikovány na příslušná vývojová prostředí, aby usnadnily vývoj a šetřily čas vývoje.
Kdykoli změníte kód v aplikaci Spring Boot, funkce Spring Boot DevTools se automaticky restartuje. Proto vám ušetří potíže s ručním restartováním aplikace pokaždé, když změníte kód.
Co je Spring Data?
Spring data se snaží poskytnout vývojářům snadný přístup k technologiím přístupu k datům, jako jsou relační a nerelační data a cloudové datové služby, protože si i nadále uchovávají speciální vlastnosti základního úložiště dat.
Jak říct automatické konfiguraci, aby ustoupila, když existuje fazole?
Zde budete používat anotaci @ConditionalOnMissingBean, která obsahuje následující atribut name a value.
- atribut value ukládá typ fazole ke kontrole
- atribut name, který pojmenuje fazole ke kontrole
Jak načíst data z databáze ve Spring Bootu?
Pomocí následujících kroků můžeme přistupovat k datům z databáze MySQL do naší aplikace Spring Boot.
Krok 1: Pomocí příkazu create DATABASE person vytvořte databázi v MySQL.
Krok 2: V databázi vytvořte tabulku:
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));
Krok 3: Nyní vytvořte aplikaci Spring Boot a poté do ní přidejte JDBC, MySQL a požadované webové závislosti.
Krok 4: Nakonfigurujte databázi ze souboru application.properties, jak je uvedeno níže.
spring.datasource.url=jdbc:mysql://localhost:3306/personDetails spring.datasource.username=example123 spring.datasource.password=example123 spring.jpa.hibernate.ddl-auto=create-drop
Krok 5: Dále zpracujme požadavky ve třídě řadiče:
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"; } }
Nakonec spusťte aplikaci při kontrole položky databáze, abyste viděli data, ke kterým jste přistupovali.
Proč potřebujeme jarní profily?
Pružinové profily umožňují oddělit konfiguraci aplikace na různé části a využít je pro konkrétní vývoj.
Spring Profiles také šetří vývojářům námahu při správě externích konfigurací specifických pro prostředí, pokud nebyly Spring Profiles dostupné.
Navíc by to ztěžovalo udržování synchronizace a znamenalo by to další potřebu napsat několik komponent podobných továrně, které by využívaly určité požadované věci v závislosti na konkrétních parametrech specifických pro prostředí.
Můžeme změnit port vestavěného serveru Tomcat ve Spring bootu?
Ano, můžeme.
To se provádí manipulací se souborem application.properties tak, aby zahrnoval vlastnost server.port a přiřazením portu dle vašeho výběru. Spring Boot automaticky načte soubor vlastností aplikace a aplikuje na aplikaci požadované konfigurace.
Můžete například změnit číslo server.port z výchozí hodnoty 8080 na server.port= 8081.
Jak nakonfigurujete Log4j pro protokolování?
Pomocí těchto několika jednoduchých kroků můžeme nakonfigurovat Log4j pro protokolování:
[main] DEBUG Example – Hello this is a debug message [main] INFO Example – Hello this is an info message
Co je to IoC kontejner?
Kontejner IoC (Inversion of Control) je základní kontejner Spring, který automaticky implementuje vkládání závislostí. Vytváří instanci aplikace třídy a je zodpovědný za konfiguraci objektů a sestavení nezbytných závislostí.
Řídí také životní cyklus objektu od jeho vytvoření po jeho zničení.
IoC provádí tyto úkoly pomocí konfigurace metadat v kódu Java, XML a anotacích Java.
Kontejner je označován jako Inversion of Control, protože řídí objekty Java a životní cykly těchto objektů. To je jinak úkol vývojáře.
Vysvětlete, jak vytvořit aplikaci Spring Boot pomocí Maven
Tento proces zahrnuje řadu kroků.
Krok 1: Vyberte typ projektu.
Krok 2: Pojmenujte svůj projekt a nakonfigurujte jej a poté kliknutím na tlačítko Dokončit projekt vytvořte.
Krok 3: Nyní nakonfigurujeme soubor pom.xml z projektu Maven, abychom z něj vytvořili projekt Spring Boot.
soubor 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>
Konfigurace zahrnuje přidání rodiče do projektu Maven. Tím bude projekt Maven deklarován jako podřízený projekt nadřazenému projektu.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent>
Krok 4: Dále přidejte webovou závislost spring-boot-starter-web do souboru pom.xml.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
Krok 5: Přidejte verzi Java projektu.
<properties> <java.version>1.8</java.version> </properties>
Krok 6: Všimněte si, že pokaždé, když přidáte nové závislosti, musíte aktualizovat projekt Maven.
Krok 7: Umožněte spustit projekt Maven vytvořením třídy Java v balíčku src/main/java.
Krok 8: Dále zavolejte metodu statického spuštění třídy Spring Application.
Krok 9: Nakonec spusťte třídu jako Java aplikaci.
Jaké jsou výhody Spring Boot oproti Spring?
- Schopnost zavádění systému Spring Boot kompilovat zdrojový jazyk pomocí inicializátoru spouštění, což je technika zvaná bootstrapping, umožňuje šetřit místo na zařízeních uživatelů a také zkracuje dobu načítání aplikace.
- Na rozdíl od Spring umožňuje Spring Boot správu závislostí po přidání závislostí spring-boot bez závislosti na nadřazeném POM (rodičovský objektový model) nebo souboru XML.
- Spring Boot také umožňuje vývojářům používat anotace nebo konfigurace XML bez nutnosti používat konfigurace XML.
- Vývojáři preferují Spring Boot pro jeho snížený standardní kód potřebný k nastavení aplikace. Je to proto, že Spring Boot je dodáván s databází v paměti a vestavěným serverem Tomcat, což snižuje standardní kód. Jaro má na druhou stranu více standardní kód.
- Spring Boot nutně nevyžaduje soubory WAR (zdroj webové aplikace) a může se spolehnout pouze na JAR (zdroj Java), který má malou a jednodušší strukturu, a proto je pro uživatele a vývojáře užitečnější.
- Spring Boot také automaticky vkládá servery jako Tomcat a Jetty; proto vývojář nemusí ručně nastavovat server, jako byste měli dělat na jaře.
Proces stránkování rozděluje data do sekcí, aby se ušetřily zdroje. Obsahuje dvě pole, velikost stránky a číslo stránky.
Proces zahrnuje několik kroků, včetně:
Krok 1: Počáteční nastavení
Consesetupn entity budeme jmenovat Person jako doménovou třídu.
@Entity public class Person { @Id private long id; private String name; }
Krok 2: Vytvoření úložiště
Dále, použití PersonRepository rozšiřuje PagingAndSortingRepository, aby bylo možné získat metody findAll(Pageable pageable) a findAll(Sort sort) pro stránkování a řazení.
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }
Krok 3: Krok stránkování
První krok zde zahrnuje vytvoření objektu PageRequest; předáním čísla stránky a požadované velikosti stránky, která implementuje rozhraní Stránkovatelné.
Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);
Poté předejte tento objekt PageRequest metodě úložiště jako parametr.
Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements); List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
Ve výchozím nastavení metoda findAll(Pageable pageable) vrátí objekt Page
Vysvětlete, jak zaregistrovat vlastní automatickou konfiguraci
V souboru @EnableAutoConfiguration key META-INF/spring.factories uveďte plně kvalifikovaný název. Tento krok zaregistruje třídu automatické konfigurace.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Vytvoření projektu pomocí Maven bude vyžadovat umístění souboru do adresáře resources/META-INF.
Co je bootstrapping v Spring Boot?
Bootstrapping je proces spouštění logiky v aplikaci Spring Boot při spuštění.
Boot initializr zkompiluje zdrojový jazyk v Spring Boot. Tento proces šetří místo na zařízení a také zkracuje dobu načítání aplikace.
Slova na závěr 👨💻
No, tento článek se zabývá některými otázkami Spring Boot, které se vás tazatelé pravděpodobně zeptají během vašeho pohovoru, a odpověďmi, které vám pomohou s jistotou zvládnout. Doufáme, že získáte práci snů!
Možná se také budete chtít dozvědět několik relevantních tipů z otázek položených během pohovoru v jazyce Java.
Hodně štěstí! 🙂