Sind Sie ein Java Spring Boot-Entwickler und freuen sich auf ein bevorstehendes Vorstellungsgespräch, sind sich aber nicht sicher, welche Fragen Sie erwarten? Wir sind hier um zu helfen!
Dieser Artikel hilft Ihnen bei der angemessenen Vorbereitung, indem er einige häufig gestellte Fragen und Antworten zu Spring Boot-Interviews skizziert, die Interviewer verwenden können, um Sie zu testen.
Interviewer verwenden strategische Java-Spring-Boot-Fragen, um die Fähigkeiten der Befragten zu testen, die für ihre jeweilige Rolle relevant sind. Daher müssen Sie sich mit relevanten Fragen vorbereiten und wissen, wie man sie beantwortet.
Bevor wir direkt zu den Interviewfragen und den entsprechenden Antworten springen, lassen Sie uns einen grundlegenden Überblick darüber geben, was Spring Boot ist und wie hilfreich es für Java-Entwickler ist.
Inhaltsverzeichnis
Was ist Java Spring Boot?
Dieses Java-Framework wurde 2014 vom Pivotal-Team entwickelt. Spring Boot, ein Open-Source-Framework, entwickelt effizient Anwendungen, die unabhängig und produktionstauglich sind und auch auf einer Java Virtual Machine (JVM) ausgeführt werden können.
Java-Entwickler bevorzugen es für die Entwicklung von Webanwendungen und Microservices wegen seines schnellen und einfachen Einrichtungsprozesses und seiner sicheren Konfigurationszeit.
Die einfache Einrichtung und Konfiguration der Spring-basierten Anwendungen von Spring Boot ist mit seinen drei Kernfunktionen möglich, darunter:
- Autokonfiguration – Dies ist eine automatische Konfiguration der Spring-Anwendung.
- Spring Boot bietet einen eigenwilligen Ansatz für die zu verwendenden Konfigurationsstandards und die zu installierenden Pakete für die erforderlichen Abhängigkeiten. Dieser eigensinnige Ansatz hilft bei der schnellen Einrichtung der Projekte.
- Mit Sprsetupoot können Sie Ihre Anwendung unabhängig ausführen, ohne dass ein Webserver erforderlich ist.
Wie hilfreich ist Spring Boot für Java-Entwickler?
Zum einen haben es Java-Entwickler, die Spring Boot verwenden, einfacher mit der automatischen Konfiguration aller Komponenten, die für die Entwicklung einer produktionstauglichen Spring-Anwendung erforderlich sind. Das verkürzt langfristig die Entwicklungszeit und steigert schließlich deren Effizienz.
Spring Boot lässt sich auch problemlos in das Spring-Ökosystem integrieren, das Spring JDBC, Spring Data, Spring Security und Spring ORM umfasst.
Java-Entwickler können Spring Boot unter anderem auch mit verschiedenen Datenbanken wie Oracle, MySQL, PostgreSQL und MongoDB verbinden.
Natürlich gehören flexible Konfigurationen mit XML-Konfigurationen, Java Beans und Datenbanktransaktionen zu den weiteren nützlichen Funktionen.
Nachdem Sie nun einen grundlegenden Überblick über Spring Boot haben, wollen wir uns daher einige der häufig gestellten Fragen und Antworten zu Spring Boot-Interviews ansehen, die Ihnen bei der Vorbereitung auf Ihr Vorstellungsgespräch helfen werden.
Fragen und Antworten zum Spring Boot-Interview
Was sind einige Funktionen von Spring Boot?
Einige dieser beliebten Funktionen sind:
- Die Spring Boot CLI bietet Groovy zum Schreiben der Spring Boot-Anwendung; Langfristig wird Boilerplate-Code vermieden.
- Spring Boot bietet Protokollierung und eine Sicherheitsfunktion, die Ihre Anwendung einfach vor potenziellen Sicherheitsbedrohungen schützt.
- Es bietet eine automatische Konfiguration relevanter Komponenten für Ihr Projekt und vermeidet so das Risiko unnötiger WAR-Dateien.
- Der Starter-Initialisierer legt eine standardmäßige interne Projektstruktur für Sie fest. Auf diese Weise müssen Sie die Projektstruktur nicht manuell einrichten.
- Die Spring Boot-Aktuatorfunktion bietet Zugriff auf Erkenntnisse und Metriken, während die Anwendung ausgeführt wird.
- Natürlich hilft eines der wichtigsten Spring Boot-Features, Starter Dependency, dabei, die häufig verwendeten Abhängigkeiten eines bestimmten Features zusammenzufassen.
Was sind Spring Boot Starter?
Spring Boot-Starter sind Abhängigkeitsdeskriptoren, die eine Reihe von Abhängigkeitsverwaltungsanbietern enthalten, die die Abhängigkeiten der Anwendung ermöglichen. Sie stellen das Framework mit Auto-Dependency Resolution bereit. Starter verbessern die einfache und schnelle Entwicklung.
Was ist ein Aktuator in Spring Boot und was sind seine Vorteile?
Der Aktuator ist eine der Spring Boot-Funktionen, mit der Sie überwachen können, was in einer Anwendung passiert, während sie ausgeführt wird.
Während des Debuggens können Sie den Aktuator beispielsweise zum Analysieren von Protokollen verwenden, indem Sie den Zugriff auf Funktionen wie die CPU-Auslastung und die Identifizierung von Beans ermöglichen.
Darüber hinaus bietet der Aktuator nicht nur einfachen Zugriff auf die produktionsbereiten REST-Endpunkte, die Informationen überwachen und verwalten, sondern ruft auch Daten aus dem Internet ab.
Was ist Thymeleaf und wie verwendet man Thymeleaf?
Thymeleaf ist die serverseitige Vorlage von Java, die ein natürliches Vorlagenlayout für Spring- und HTML5-Java-Webanwendungen erstellt.
Spring Boot führt eine automatische Konfiguration von thymeleaf unter Verwendung der spring-boot-starter-thymeleaf-Abhängigkeit in der Datei pom.xml durch, um den dynamischen Webinhalt bereitzustellen.
Damit Spring Boot die Thymeleaf-Vorlagen oder HTML-Dateien lesen und rendern kann, platzieren Sie die Vorlagen in src/main/resources/templates.
Thymeleaf analysiert dann die Datei index.html und verwendet die tatsächlichen Werte, die Sie von der Controller-Klasse übergeben, anstelle der in der Indexdatei verfügbaren dynamischen Werte.
Danach wird die Nachricht im Webbrowser gerendert, sobald die Spring Boot-Anwendung ausgeführt wird.
org.springframework.boot spring-boot-starter-thymeleaf
Beschreiben des Prozesses zum Erstellen eines Spring Boot-Projekts mit Spring Initializer.
Mit Spring Initializr, einem Spring-Webtool, können Sie in wenigen Schritten ein Spring Boot-Projekt erstellen, indem Sie die Details des Projekts angeben.
Was ist JPA in Spring Boot?
Dies ist eine Spezifikation in Java, 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 die automatische Konfiguration in Spring Boot?
Die automatische Konfiguration versucht, die Konfiguration der Spring Boot-Anwendung mithilfe der JAR-Abhängigkeiten zu automatisieren, die Sie den Anwendungen hinzufügen.
Abhängig von den verfügbaren Abhängigkeiten im Klassenpfad der Anwendung deklariert die automatische Konfiguration die eingebauten Objekte des springspezifischen Moduls, einschließlich JPA und Spring Security, unter anderem.
Was sind Frühlingsanmerkungen?
Spring-Anmerkungen beziehen sich auf Metadaten, die Informationen zu einem Programmausschnitt bieten, und sie fügen diesem Programm zusätzliche Daten hinzu. Codekomponenten, einschließlich Klassen und Methoden, sind häufig mit Annotationen verknüpft.
Anmerkungen wirken sich nicht direkt auf den Betrieb des Programms oder die nachfolgende Aktion des kompilierten Codes aus.
Ihre Syntax beginnt mit dem ‚@‘-Symbol.
Spring Boot bietet sechs Haupttypen von Anmerkungen, darunter:
- Spring Core Anmerkungen
- Anmerkungen zu Frühlingsdaten
- Spring Bean Anmerkungen
- Spring Web-Anmerkungen
- Anmerkungen zur Frühjahrsplanung
- Spring Boot-Anmerkungen
Was bedeutet Spring Data REST?
Spring Data REST macht die Ressourcen in RESTful, die sich um Spring Data Resources herum befinden, mit minimalem Code verfügbar.
Das folgende Beispiel verwendet die POST-Methode zum Anfordern von Inhalten unter Verwendung von https://localhost/example als URL und Content-Type: application/json als Header.
Anforderungsinhalt:
{ "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 jeweiligen Entwicklungsumgebungen angewendet werden, um die Entwicklung zu vereinfachen und Entwicklungszeit zu sparen.
Immer wenn Sie Code in der Spring Boot-Anwendung ändern, wird die Spring Boot DevTools-Funktion automatisch neu gestartet. Daher erspart es Ihnen die Mühe, Ihre Anwendung jedes Mal manuell neu zu starten, wenn Sie Ihren Code ändern.
Was sind Spring Data?
Spring Data soll Entwicklern einen einfachen Zugang zu Datenzugriffstechnologien wie relationalen und nicht relationalen Daten und Cloud-basierten Datendiensten ermöglichen, da es weiterhin die besonderen Merkmale des zugrunde liegenden Datenspeichers beibehält.
Wie kann man einer Autokonfiguration mitteilen, sich zurückzuziehen, wenn eine Bean vorhanden ist?
Hier verwenden Sie die Annotation @ConditionalOnMissingBean, die das Attribut name und value wie folgt enthält.
- value-Attribut speichert den zu prüfenden Bean-Typ
- name-Attribut, das die zu prüfende Bean benennt
Wie rufe ich Daten aus der Datenbank in Spring Boot ab?
Mit den folgenden Schritten können wir auf Daten aus einer MySQL-Datenbank in unsere Spring Boot-Anwendung zugreifen.
Schritt 1: Verwenden Sie den Personenbefehl create DATABASE, um die Datenbank in MySQL zu erstellen.
Schritt 2: Erstellen Sie in der Datenbank eine Tabelle:
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 aus 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 schließlich Ihre Anwendung aus, während Sie den Datenbankeintrag überprüfen, um die Daten anzuzeigen, auf die zugegriffen wird.
Warum brauchen wir Federprofile?
Federprofile ermöglichen die Trennung der Konfiguration einer Anwendung von verschiedenen Teilen und nutzen sie für spezifische Entwicklungen.
Spring Profiles erspart dem Entwickler auch die Mühe, umgebungsspezifische externe Konfigurationen zu verwalten, wenn die Spring Profiles nicht verfügbar wären.
Darüber hinaus würde dies die Synchronisierung erschweren und die zusätzliche Notwendigkeit bedeuten, mehrere fabrikähnliche Komponenten zu schreiben, die bestimmte erforderliche Dinge in Abhängigkeit von bestimmten umgebungsspezifischen Parametern nutzen würden.
Können wir den Port des eingebetteten Tomcat-Servers in Spring Boot ändern?
Ja wir können.
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 automatisch die Anwendungseigenschaftendatei und wendet die erforderlichen Konfigurationen auf die Anwendung an.
Beispielsweise können Sie die server.port-Nummer vom Standardwert 8080 in server.port= 8081 ändern.
Wie konfigurieren Sie Log4j für die Protokollierung?
Mit diesen wenigen einfachen Schritten können wir Log4j für die Protokollierung konfigurieren:
[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. Es instanziiert die Anwendung der Klasse und ist für die Konfiguration der Objekte und das Zusammenstellen der notwendigen Abhängigkeiten verantwortlich.
Es verwaltet auch den Lebenszyklus des Objekts von seiner Instanziierung bis zu seiner 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. Dies ist ansonsten die Aufgabe eines Entwicklers.
Erklären Sie, wie Sie mit Maven eine Spring Boot-Anwendung erstellen
Dieser Prozess umfasst eine Reihe von Schritten.
Schritt 1: Wählen Sie die Art des Projekts aus.
Schritt 2: Benennen Sie Ihr Projekt, um es zu konfigurieren, und klicken Sie dann auf die Schaltfläche „Fertig stellen“, um das Projekt zu erstellen.
Schritt 3: Jetzt konfigurieren wir die Datei pom.xml aus dem Maven-Projekt, um daraus 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 Sie jedes Mal, wenn Sie neue Abhängigkeiten hinzufügen, das Maven-Projekt aktualisieren müssen.
Schritt 7: Machen Sie das Maven-Projekt lauffähig, 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.
Was sind die Vorteile von 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 Platzersparnis auf den Geräten der Benutzer und reduziert auch die Ladezeit der Anwendung.
- Im Gegensatz zu Spring ermöglicht Spring Boot die Verwaltung von Abhängigkeiten nach dem Hinzufügen der Spring-Boot-Abhängigkeiten, ohne vom übergeordneten POM (übergeordnetes Objektmodell) oder der XML-Datei abhängig zu sein.
- Spring Boot ermöglicht es Entwicklern auch, entweder Anmerkungen oder XML-Konfigurationen zu verwenden, ohne XML-Konfigurationen verwenden zu müssen.
- Entwickler bevorzugen Spring Boot wegen seines geringeren Boilerplate-Codes, der zum Einrichten einer Anwendung erforderlich ist. Dies liegt daran, dass Spring Boot mit einer In-Memory-Datenbank und einem eingebetteten Tomcat-Server geliefert wird, wodurch der Boilerplate-Code verringert wird. Spring hingegen hat mehr Boilerplate-Code.
- Spring Boot erfordert nicht unbedingt 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 auch automatisch Server wie Tomcat und Jetty ein; Daher muss der Entwickler den Server nicht manuell einrichten, wie Sie es in Spring tun sollten.
Der Paginierungsprozess unterteilt Daten in Abschnitte, um Ressourcen zu sparen. Es umfasst zwei Felder, die Seitengröße und die Seitenzahl.
Der Prozess umfasst einige Schritte, darunter:
Schritt 1: Ersteinrichtung
Consisetupn-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 als Nächstes ein PersonRepository, das PagingAndSortingRepository erweitert, um die Methoden findAll(Pageable pageable) und findAll(Sort sort) zum Paging bzw. Sortieren abzurufen.
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }
Schritt 3: Paginierungsschritt
Der erste Schritt hier besteht darin, ein PageRequest-Objekt zu erstellen; durch Übergeben der Seitenzahl und der Seitengröße wie angefordert, die die Pageable-Schnittstelle implementiert.
Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);
Übergeben Sie dann 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
Erklären Sie, wie Sie eine benutzerdefinierte automatische Konfiguration 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, müssen Sie die Datei im Verzeichnis resources/META-INF ablegen.
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 außerdem die Ladezeit der Anwendung.
Schlussworte 👨💻
Nun, dieser Artikel behandelte einige Spring Boot-Fragen, die Interviewer Ihnen wahrscheinlich während Ihres Vorstellungsgesprächs stellen werden, und die Antworten, die Ihnen dabei helfen, es souverän zu meistern. Wir hoffen, dass Sie den Traumjob finden!
Vielleicht möchten Sie auch ein paar relevante Tipps aus Fragen lernen, die während eines Java-Interviews gestellt werden.
Viel Glück!🙂