Sind Sie ein Java Spring Boot Entwickler und stehen kurz vor einem Bewerbungsgespräch, aber sind unsicher, welche Fragen auf Sie zukommen könnten? Wir helfen Ihnen gerne weiter!
Dieser Beitrag soll Ihnen bei der optimalen Vorbereitung dienen. Wir stellen einige häufige Fragen und passende Antworten für Spring Boot-Interviews vor, die Personalverantwortliche nutzen könnten, um Ihre Qualifikationen zu bewerten.
Personalverantwortliche setzen strategische Java Spring Boot Fragen ein, um die Kompetenzen der Kandidaten in Bezug auf die ausgeschriebene Position zu prüfen. Daher ist es ratsam, sich mit relevanten Fragen auseinanderzusetzen und zu lernen, wie man diese beantwortet.
Bevor wir direkt zu den Interviewfragen und ihren Antworten übergehen, geben wir Ihnen zunächst einen grundlegenden Überblick darüber, was Spring Boot ausmacht und wie vorteilhaft es für Java-Entwickler ist.
Was ist Java Spring Boot?
Dieses Java-Framework wurde im Jahr 2014 vom Pivotal-Team ins Leben gerufen. Spring Boot ist ein Open-Source-Framework, das die effiziente Entwicklung eigenständiger und produktionsreifer Anwendungen ermöglicht, die auf der Java Virtual Machine (JVM) ausgeführt werden können.
Java-Entwickler bevorzugen es für die Entwicklung von Webanwendungen und Microservices, weil es einen schnellen und einfachen Einrichtungsprozess bietet und eine unkomplizierte Konfiguration ermöglicht.
Die einfache Einrichtung und Konfiguration von Spring-basierten Applikationen mit Spring Boot ist dank seiner drei Kernfunktionen möglich:
- Autokonfiguration – Diese Funktion ermöglicht die automatische Konfiguration der Spring-Applikation.
- Spring Boot bietet einen konventionsbasierten Ansatz für die zu verwendenden Konfigurationsstandards und die zu installierenden Pakete für notwendige Abhängigkeiten. Dieser Ansatz fördert die schnelle Einrichtung von Projekten.
- Mit Spring Boot können Sie Ihre Anwendung unabhängig ausführen, ohne dass ein Webserver erforderlich ist.
Wie ist Spring Boot hilfreich für Java-Entwickler?
Zunächst erleichtert Spring Boot Java-Entwicklern die Arbeit durch die automatische Konfiguration aller Komponenten, die für die Entwicklung einer produktionsreifen Spring-Anwendung benötigt werden. Das verkürzt die Entwicklungszeit und erhöht die Effizienz.
Des Weiteren integriert sich Spring Boot nahtlos in das Spring-Ökosystem, einschließlich Spring JDBC, Spring Data, Spring Security und Spring ORM.
Java-Entwickler können Spring Boot zudem mit verschiedenen Datenbanken wie Oracle, MySQL, PostgreSQL und MongoDB verbinden.
Weitere nützliche Funktionen sind natürlich die flexiblen Konfigurationen mit XML-Konfigurationen, Java Beans und Datenbanktransaktionen.
Nach diesem kurzen Einblick in Spring Boot, wollen wir uns nun einigen typischen Fragen und Antworten bei Spring Boot-Interviews zuwenden, die Ihnen bei der Vorbereitung helfen werden.
Fragen und Antworten zum Spring Boot-Interview
Welche Funktionen bietet Spring Boot?
Einige der wichtigsten Funktionen umfassen:
- Die Spring Boot CLI ermöglicht das Schreiben der Spring Boot-Anwendung in Groovy, wodurch Boilerplate-Code vermieden wird.
- Spring Boot bietet Protokollierungs- und Sicherheitsfunktionen, die Ihre Anwendung vor potenziellen Sicherheitsrisiken schützen.
- Es bietet eine automatische Konfiguration relevanter Komponenten für Ihr Projekt und vermeidet so unnötige WAR-Dateien.
- Der Starter-Initialisierer definiert eine standardisierte interne Projektstruktur, wodurch Sie diese nicht manuell einrichten müssen.
- Die Spring Boot-Aktuatorfunktion ermöglicht den Zugriff auf Analysen und Metriken während der Laufzeit der Anwendung.
- Ein besonders wichtiges Feature von Spring Boot ist die Starter Dependency, welche häufig benötigte Abhängigkeiten zusammenfasst.
Was sind Spring Boot Starter?
Spring Boot Starter sind Abhängigkeitsdeskriptoren, die eine Reihe von Abhängigkeitsmanagement-Anbietern enthalten, welche die Abhängigkeiten der Anwendung managen. Sie stellen dem Framework eine automatische Auflösung von Abhängigkeiten zur Verfügung und fördern somit eine einfache und schnelle Entwicklung.
Was ist ein Aktuator in Spring Boot und welche Vorteile bietet er?
Der Aktuator ist eine Spring Boot-Funktion, die es ermöglicht zu überwachen, was in einer Anwendung während ihrer Ausführung passiert.
So kann der Aktuator beispielsweise zum Analysieren von Protokollen beim Debugging verwendet werden, indem er Zugriff auf Funktionen wie die CPU-Auslastung und die Identifizierung von Beans gewährt.
Darüber hinaus bietet der Aktuator nicht nur einfachen Zugriff auf produktionsbereite REST-Endpunkte, die Informationen überwachen und verwalten, sondern er kann auch Daten aus dem Internet beziehen.
Was ist Thymeleaf und wie wird es verwendet?
Thymeleaf ist eine serverseitige Java-Template-Engine, die ein natürliches Template-Layout für Spring- und HTML5-Java-Webanwendungen erstellt.
Spring Boot führt eine automatische Konfiguration von Thymeleaf durch, indem die spring-boot-starter-thymeleaf-Abhängigkeit in der Datei pom.xml verwendet wird, um dynamische Webinhalte bereitzustellen.
Damit Spring Boot die Thymeleaf-Vorlagen oder HTML-Dateien lesen und rendern kann, werden die Vorlagen unter src/main/resources/templates abgelegt.
Thymeleaf analysiert dann die Datei index.html und verwendet die tatsächlichen Werte, die von der Controller-Klasse übergeben werden, anstelle der in der Indexdatei vorhandenen dynamischen Werte.
Nach dem Start der Spring Boot-Anwendung wird die Nachricht dann im Webbrowser dargestellt.
org.springframework.boot spring-boot-starter-thymeleaf
Beschreiben Sie den Prozess zur Erstellung eines Spring Boot-Projekts mit Spring Initializer.
Mit Spring Initializr, einem Webtool von Spring, kann ein Spring Boot-Projekt in wenigen Schritten durch Angabe der Projektdetails erstellt werden.
- Gehen Sie zu Spring Initializr und füllen Sie die Eingabefelder aus.
- Durch Klicken auf die Schaltfläche „Generieren“ wird der Download des Projekts gestartet.
- Extrahieren Sie das heruntergeladene Projekt aus der ZIP-Datei und öffnen Sie es in Ihrer IDE. Navigieren Sie in der IDE zu Datei->Neu->Projekt aus vorhandenen Quellen->Spring-Boot-App und wählen Sie die Datei pom.xml aus. Klicken Sie auf die Aufforderung zum Importieren von Änderungen, damit das Projekt synchronisiert wird. Gehen Sie anschließend zur Datei application.properties und ändern Sie die Server.port-Nummer auf server.port=7000.
- Führen Sie nun die Anwendung aus src->main->java->com.gfg.Spring.boot.app aus
Was ist JPA in Spring Boot?
JPA ist eine Java-Spezifikation, die Object-Relation Mapping (ORM) verwendet, um relationale Daten zu verwalten und den Zugriff auf Daten zwischen dem Java-Objekt oder der Java-Klasse und der relationalen Datenbank der Anwendung zu ermöglichen.
JPA verwendet die Java Persistent Query Language (JPQL), eine objektorientierte Abfragesprache, die auch plattformunabhängig ist.
JPA ermöglicht die Abfrageverarbeitung und Objekttransaktionen für die Datenbank mithilfe der bereitgestellten Entity Manager-API.
Was ist Autokonfiguration in Spring Boot?
Die Autokonfiguration versucht die Konfiguration der Spring Boot-Anwendung mithilfe der JAR-Abhängigkeiten, die Sie den Anwendungen hinzufügen, zu automatisieren.
Abhängig von den verfügbaren Abhängigkeiten im Klassenpfad der Anwendung deklariert die Autokonfiguration die eingebauten Objekte des Spring-spezifischen Moduls, einschließlich JPA und Spring Security.
Was sind Spring-Annotationen?
Spring-Annotationen beziehen sich auf Metadaten, die Informationen zu einem Programmsegment liefern und diesem Programm zusätzliche Daten hinzufügen. Codekomponenten, wie Klassen und Methoden, sind häufig mit Annotationen verknüpft.
Annotationen haben keinen direkten Einfluss auf die Funktion des Programms oder die darauffolgende Handlung des kompilierten Codes.
Ihre Syntax beginnt mit dem Symbol ‚@‘.
Spring Boot bietet sechs Haupttypen von Annotationen, darunter:
- Spring Core Annotationen
- Spring Data Annotationen
- Spring Bean Annotationen
- Spring Web Annotationen
- Spring Scheduling Annotationen
- Spring Boot Annotationen
Was bedeutet Spring Data REST?
Spring Data REST macht Ressourcen in RESTful-Formaten mit minimalem Code zugänglich und konzentriert sich dabei auf Spring Data Resources.
Das folgende Beispiel verwendet die POST-Methode, um Inhalte unter Verwendung von https://localhost/example als URL und Content-Type: application/json als Header anzufordern.
Inhalt der Anfrage:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 }
Inhalt der Antwort:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 "_links": { "self": { "href": "https://localhost:8080/example/1" }, "person": { "href": "https://localhost:8080/example/1" } } }
Dabei handelt es sich um einen umfassenden Satz vordefinierter Werkzeuge, deren Eigenschaften auf die jeweilige Entwicklungsumgebung angewendet werden, um die Entwicklung zu erleichtern und Entwicklungszeit einzusparen.
Immer wenn Sie Code in der Spring Boot-Anwendung ändern, wird die Spring Boot DevTools-Funktion automatisch neu gestartet. Dadurch ersparen Sie sich das manuelle Neustarten der Anwendung bei jeder Codeänderung.
Was ist Spring Data?
Spring Data wurde entwickelt, um Entwicklern einen einfachen Zugriff auf Datenzugriffstechnologien, wie relationale und nicht-relationale Daten und cloudbasierte Datendienste, zu ermöglichen. Dabei behält es weiterhin die besonderen Eigenschaften des zugrunde liegenden Datenspeichers bei.
Wie kann man einer Autokonfiguration mitteilen, sich zurückzuziehen, wenn ein Bean existiert?
Hier wird die Annotation @ConditionalOnMissingBean verwendet, die das Attribut name und value wie folgt enthält.
- Das value-Attribut speichert den zu prüfenden Bean-Typ
- Das name-Attribut, das die zu prüfende Bean benennt
Wie rufe ich Daten aus einer Datenbank in Spring Boot ab?
Mit den folgenden Schritten kann auf Daten aus einer MySQL-Datenbank in einer Spring Boot-Anwendung zugegriffen werden.
Schritt 1: Verwenden Sie den Befehl create DATABASE, um die Datenbank in MySQL zu erstellen.
Schritt 2: Erstellen Sie eine Tabelle in der Datenbank:
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));
Schritt 3: Erstellen Sie nun eine Spring Boot-Anwendung und fügen Sie JDBC, MySQL und die erforderlichen Webabhängigkeiten hinzu.
Schritt 4: Konfigurieren Sie die Datenbank in der Datei application.properties wie unten.
spring.datasource.url=jdbc:mysql://localhost:3306/personDetails spring.datasource.username=example123 spring.datasource.password=example123 spring.jpa.hibernate.ddl-auto=create-drop
Schritt 5: Als Nächstes behandeln wir Anfragen in der Controller-Klasse:
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"; } }
Führen Sie schlussendlich Ihre Anwendung aus, während Sie den Datenbankeintrag überprüfen, um die Daten, auf die zugegriffen wird, anzuzeigen.
Warum benötigen wir Spring Profiles?
Spring Profiles ermöglichen die Trennung der Konfiguration einer Anwendung in verschiedene Bereiche und deren Nutzung für bestimmte Entwicklungsumgebungen.
Spring Profiles ersparen dem Entwickler auch den Aufwand, umgebungsspezifische externe Konfigurationen zu verwalten, wenn Spring Profiles nicht verfügbar wären.
Dies würde zudem die Synchronisierung erschweren und die Notwendigkeit erfordern, mehrere fabrikähnliche Komponenten zu schreiben, welche bestimmte notwendige Elemente in Abhängigkeit von umgebungsspezifischen Parametern nutzen würden.
Kann der Port des eingebetteten Tomcat-Servers in Spring Boot geändert werden?
Ja, das ist möglich.
Dazu bearbeiten Sie die Datei application.properties so, dass sie die Eigenschaft server.port enthält, und weisen ihr einen Port Ihrer Wahl zu. Spring Boot lädt die Anwendungseigenschaftendatei automatisch und wendet die erforderlichen Konfigurationen auf die Anwendung an.
Beispielsweise kann die server.port-Nummer vom Standardwert 8080 auf server.port=8081 geändert werden.
Wie konfigurieren Sie Log4j für die Protokollierung?
Mit diesen wenigen einfachen Schritten kann Log4j für die Protokollierung konfiguriert werden:
- Erstellen Sie zunächst Ihr Java-Projekt und klicken Sie dann mit der rechten Maustaste auf das Projekt. Navigieren Sie zu MyEclipse->File->New->Java Project, um das Projekt zu benennen und klicken Sie auf „Fertigstellen“.
- Klicken Sie anschließend mit der rechten Maustaste auf den Namen Ihres Java-Projekts und wählen Sie Build Path -> Configure Build Path aus. Dieser Schritt fügt die log4j-Datei hinzu.
- Navigieren Sie zur Bibliothek und klicken Sie auf die Schaltfläche Externe JARs hinzufügen und wählen Sie die log4j-Datei aus dem Dropdown-Menü aus. Klicken Sie dann auf OK.
- Erstellen Sie eine neue Java-Datei mit dem Namen log4j.properties, klicken Sie auf „Fertigstellen“ und fügen Sie diese Datei zum Classpath hinzu.
- Klicken Sie im Klassenpfad auf Erweitert, wählen Sie die Option „Ordner hinzufügen“ und klicken Sie auf OK.
- Sie können jetzt nach der Datei log4j.properties suchen, auf OK klicken und das Projekt ausführen.
- Überprüfen Sie die Konsole auf die folgende Ausgabe.
[main] DEBUG Example – Hello this is a debug message [main] INFO Example – Hello this is an info message
Was ist ein IoC-Container?
Der IoC-Container (Inversion of Control) ist ein zentraler Spring-Container, der automatisch Dependency Injection implementiert. Er instanziiert die Anwendungsklasse und ist für die Konfiguration der Objekte und das Zusammenstellen der notwendigen Abhängigkeiten zuständig.
Er verwaltet auch den Lebenszyklus des Objekts von seiner Instanziierung bis zur Zerstörung.
IoC führt diese Aufgaben mithilfe der Metadatenkonfiguration in Java-Code, XML und Java-Annotationen aus.
Der Container wird als Inversion of Control bezeichnet, da er die Java-Objekte und die Lebenszyklen dieser Objekte steuert. Das ist ansonsten die Aufgabe eines Entwicklers.
Erläutern Sie, wie man mit Maven eine Spring Boot-Anwendung erstellt.
Dieser Prozess umfasst eine Reihe von Schritten.
Schritt 1: Wählen Sie die Art des Projekts aus.
Schritt 2: Konfigurieren Sie Ihr Projekt und klicken Sie dann auf die Schaltfläche „Fertig stellen“, um das Projekt zu erstellen.
Schritt 3: Konfigurieren Sie nun die Datei pom.xml aus dem Maven-Projekt, um ein Spring Boot-Projekt zu erstellen.
pom.xml-Datei:
<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>
Die Konfiguration beinhaltet das Hinzufügen eines übergeordneten Elements zum Maven-Projekt. Dadurch wird das Maven-Projekt als untergeordnetes Projekt des übergeordneten Projekts deklariert.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent>
Schritt 4: Fügen Sie als Nächstes die Webabhängigkeit spring-boot-starter-web zur pom.xml hinzu.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
Schritt 5: Fügen Sie die Java-Version des Projekts hinzu.
<properties> <java.version>1.8</java.version> </properties>
Schritt 6: Beachten Sie, dass das Maven-Projekt jedes Mal aktualisiert werden muss, wenn neue Abhängigkeiten hinzugefügt werden.
Schritt 7: Machen Sie das Maven-Projekt ausführbar, indem Sie eine Java-Klasse im Paket src/main/java erstellen.
Schritt 8: Rufen Sie als Nächstes die statische Ausführungsmethode der Klasse der Spring-Anwendung auf.
Schritt 9: Zuletzt führen Sie die Klasse als Java-Anwendung aus.
Welche Vorteile hat Spring Boot gegenüber Spring?
- Die Bootstrapping-Fähigkeit von Spring Boot zum Kompilieren der Quellsprache mithilfe des Boot-Initialisierers, einer Technik namens Bootstrapping, ermöglicht eine Platzeinsparung auf den Geräten der Benutzer und reduziert die Ladezeit der Anwendung.
- Im Gegensatz zu Spring ermöglicht Spring Boot das Verwalten von Abhängigkeiten nach dem Hinzufügen der Spring Boot-Abhängigkeiten, ohne vom übergeordneten POM (Parent Object Model) oder der XML-Datei abhängig zu sein.
- Spring Boot ermöglicht es Entwicklern, entweder Annotationen oder XML-Konfigurationen zu verwenden, ohne die XML-Konfigurationen obligatorisch verwenden zu müssen.
- Entwickler bevorzugen Spring Boot wegen des geringeren Boilerplate-Codes, der zum Einrichten einer Anwendung erforderlich ist. Spring Boot wird mit einer In-Memory-Datenbank und einem eingebetteten Tomcat-Server geliefert, wodurch der Boilerplate-Code reduziert wird. Spring hingegen hat mehr Boilerplate-Code.
- Spring Boot benötigt keine WAR-Dateien (Web Application Resource) und kann sich nur auf die JAR-Datei (Java Resource) verlassen, die eine kleinere und einfachere Struktur hat und daher für Benutzer und Entwickler nützlicher ist.
- Spring Boot bettet Server wie Tomcat und Jetty automatisch ein; der Entwickler muss den Server nicht manuell einrichten, wie dies in Spring notwendig wäre.
Die Paginierung teilt Daten in Abschnitte auf, um Ressourcen zu sparen. Sie umfasst zwei Felder, die Seitengröße und die Seitenzahl.
Der Prozess umfasst einige Schritte:
Schritt 1: Ersteinrichtung
Die Entität nennen wir Person als Domänenklasse.
@Entity public class Person { @Id private long id; private String name; }
Schritt 2: Repository-Erstellung
Verwenden Sie ein PersonRepository, das PagingAndSortingRepository erweitert, um die Methoden findAll(Pageable pageable) und findAll(Sort sort) für die Paginierung bzw. Sortierung abzurufen.
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }
Schritt 3: Paginierungsschritt
Der erste Schritt ist das Erstellen eines PageRequest-Objekts. Dies wird durch das Übergeben der Seitenzahl und der Seitengröße, welche die Pageable-Schnittstelle implementiert, erreicht.
Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);
Übergeben Sie dieses PageRequest-Objekt als Parameter an die Repository-Methode.
Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements); List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
Standardmäßig gibt die Methode findAll(Pageable pageable) ein Page
Erläutern Sie, wie Sie eine benutzerdefinierte Autokonfiguration registrieren.
Geben Sie unter der @EnableAutoConfiguration-Schlüsseldatei META-INF/spring.factories den vollständig qualifizierten Namen an. Dieser Schritt registriert die Autokonfigurationsklasse.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Um das Projekt mit Maven zu erstellen, muss die Datei im Verzeichnis resources/META-INF abgelegt werden.
Was ist Bootstrapping in Spring Boot?
Bootstrapping ist der Prozess der Ausführung von Logik in der Spring Boot-Anwendung beim Start.
Der Boot Initializr kompiliert die Quellsprache in Spring Boot. Dieser Vorgang spart Speicherplatz auf dem Gerät und verkürzt die Ladezeit der Anwendung.
Schlussworte 👨💻
Dieser Beitrag hat einige Spring Boot-Fragen behandelt, die Ihnen wahrscheinlich in einem Bewerbungsgespräch gestellt werden, sowie Antworten, die Ihnen helfen sollen, das Gespräch souverän zu meistern. Wir hoffen, dass Sie Ihren Traumjob finden!
Vielleicht möchten Sie auch ein paar relevante Tipps aus Fragen lernen, die während eines Java-Interviews gestellt werden.
Viel Erfolg!🙂