Was haben Sie im 2020 Spring Boot Interview gefragt? Fassen Sie diese 22 wichtigsten Interviewfragen zusammen! (Mit Antwort)

Fügen Sie hier eine Bildbeschreibung ein
Microservices, die in den letzten Jahren explodiert sind, sind die Interviewfragen, die Unternehmen und First-Line-BATJs gerne stellen. Heute werde ich die Spring Boot-Interviewfragen aufgreifen, die dieses Jahr immer gestellt werden. Was haben Sie gestellt? Zusätzlich zu den Wissenspunkten von Spring Boot habe ich hier einige der neuesten Java-Interviewfragen und Kernwissenspunkte zusammengestellt, die Ihnen helfen können, Ihre Fähigkeiten zu verbessern und zu verbessern. Freunde, die sie benötigen, können klicken: Klicken Sie hier, klicken Sie hier , Passwort: csdn.
Fügen Sie hier eine Bildbeschreibung ein

1. Was ist Spring Boot?

Im Laufe der Jahre wurde der Frühling mit neuen Funktionen immer komplexer. Besuchen Sie die offizielle Website-Seite des Frühlings. Wir sehen alle verschiedenen Funktionen des Frühlingsprojekts, die in unserer Anwendung verwendet werden können. Wenn ein neues Spring-Projekt gestartet werden muss, müssen wir den Erstellungspfad oder Maven-Abhängigkeiten hinzufügen, den Anwendungsserver konfigurieren und die Spring-Konfiguration hinzufügen. Das Starten eines neuen Frühjahrsprojekts erfordert daher viel Aufwand, da wir jetzt alles von Grund auf neu machen müssen.

Spring Boot ist die Lösung für dieses Problem. Der Federschuh wurde auf dem vorhandenen Federrahmen aufgebaut. Mit Spring Boot vermeiden wir den gesamten Code und die Konfiguration der Boilerplate, die wir zuvor vornehmen mussten. Daher kann uns Spring Boot dabei helfen, die vorhandenen Spring-Funktionen bei geringstem Arbeitsaufwand robuster zu nutzen.

2. Was sind die Vorteile von Spring Boot?

1. Reduzieren Sie die Entwicklungs- und Testzeit und den Testaufwand.
2. Die Verwendung von JavaConfig hilft, die Verwendung von XML zu vermeiden.
3. Vermeiden Sie eine große Anzahl von Maven-Importen und verschiedene Versionskonflikte.
4. Beratung und Entwicklungsmethoden bereitstellen.
5. Starten Sie die Entwicklung schnell, indem Sie Standardwerte angeben.
6. Es ist kein separater Webserver erforderlich. Dies bedeutet, dass Sie Tomcat, Glassfish oder etwas anderes nicht mehr starten müssen.
7. Es ist weniger Konfiguration erforderlich, da keine web.xml-Datei vorhanden ist. Fügen Sie einfach die mit @Configuration annotierte Klasse hinzu und fügen Sie dann die mit @Bean annotierte Methode hinzu. Spring lädt das Objekt automatisch und verwaltet es wie zuvor. Sie können der Bean-Methode sogar @Autowired hinzufügen, damit Spring die erforderlichen Abhängigkeiten automatisch lädt.
8. Umgebungsbasierte Konfiguration Mit diesen Attributen können Sie die von Ihnen verwendete Umgebung an die Anwendung übergeben: -Dspring.profiles.active = {enviornment}. Nach dem Laden der Hauptanwendungseigenschaftendatei lädt Spring die nachfolgende Anwendungseigenschaftendatei in (application {environment} .properties).

3. Was ist JavaConfig?

Spring JavaConfig ist ein Produkt der Spring-Community und bietet eine reine Java-Methode zum Konfigurieren des Spring IoC-Containers. Daher ist es hilfreich, die Verwendung der XML-Konfiguration zu vermeiden. Die Vorteile der Verwendung von JavaConfig sind:

(1) Objektorientierte Konfiguration. Da die Konfiguration in JavaConfig als Klasse definiert ist, können Benutzer die objektorientierten Funktionen in Java vollständig nutzen. Eine Konfigurationsklasse kann eine andere erben, ihre @ Bean-Methode überschreiben usw.

(2) Reduzieren oder eliminieren Sie die XML-Konfiguration. Die Vorteile einer externalisierten Konfiguration basierend auf dem Prinzip der Abhängigkeitsinjektion wurden nachgewiesen. Viele Entwickler möchten jedoch nicht zwischen XML und Java wechseln. JavaConfig bietet Entwicklern eine reine Java-Methode zum Konfigurieren des Spring-Containers ähnlich dem XML-Konfigurationskonzept. Aus technischer Sicht ist es möglich, nur die JavaConfig-Konfigurationsklasse zum Konfigurieren des Containers zu verwenden. Viele Leute halten es jedoch für ideal, JavaConfig mit XML zu mischen und abzugleichen.

(3) Typensicherheit und Refactoring freundlich. JavaConfig bietet eine typsichere Möglichkeit zum Konfigurieren des Spring-Containers. Dank der Unterstützung von Java 5.0 für Generika können Beans jetzt nach Typ anstelle von Name abgerufen werden, ohne dass eine Cast- oder String-basierte Suche erforderlich ist.

4. Wie lade ich die Änderungen beim Spring Boot neu, ohne den Server neu zu starten?

Dies kann mit dem DEV-Tool erreicht werden. Mit dieser Abhängigkeit können Sie alle Änderungen speichern und der eingebettete Tomcat wird neu gestartet. Spring Boot verfügt über ein DevTools-Modul (Development Tools), mit dem die Produktivität von Entwicklern verbessert werden kann.

Eine der größten Herausforderungen für Java-Entwickler besteht darin, Dateiänderungen automatisch auf dem Server bereitzustellen und den Server automatisch neu zu starten. Entwickler können Änderungen in Spring Boot neu laden, ohne den Server neu zu starten. Dadurch entfällt die Notwendigkeit, Änderungen jedes Mal manuell bereitzustellen. Spring Boot hatte diese Funktion nicht, als es seine erste Version veröffentlichte. Dies ist die Funktion, die Entwickler am meisten benötigen. Das DevTools-Modul erfüllt die Anforderungen der Entwickler vollständig. Dieses Modul wird in der Produktionsumgebung deaktiviert. Es bietet auch eine H2-Datenbankkonsole zum besseren Testen von Anwendungen.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>

5. Was ist der Monitor in Spring Boot?

Spring Boot Actuator ist eine der wichtigen Funktionen im Spring Boot Framework. Mit dem Spring-Boot-Monitor können Sie auf den aktuellen Status der ausgeführten Anwendung in der Produktionsumgebung zugreifen. In einer Produktionsumgebung müssen mehrere Indikatoren überprüft und überwacht werden.

Sogar einige externe Anwendungen verwenden diese Dienste möglicherweise, um Warnmeldungen an relevantes Personal auszulösen. Das Überwachungsmodul stellt eine Reihe von REST-Endpunkten bereit, auf die direkt als HTTP-URLs zugegriffen werden kann, um den Status zu überprüfen.

6. Wie deaktiviere ich die Actuator-Endpunktsicherheit in Spring Boot?

Standardmäßig sind alle vertraulichen HTTP-Endpunkte sicher, und nur Benutzer mit der Rolle ACTUATOR können auf sie zugreifen. Die Sicherheit wird mithilfe der Standardmethode HttpServletRequest.isUserInRole implementiert. Wir können verwenden, um die Sicherheit zu deaktivieren. Es wird nur empfohlen, die Sicherheit zu deaktivieren, wenn der Aktuatorendpunkt hinter einer Firewall aufgerufen wird.

7. Wie führe ich die Spring Boot-Anwendung auf einem benutzerdefinierten Port aus?

Um Spring Boot-Anwendungen auf einem benutzerdefinierten Port auszuführen, können Sie den Port in application.properties angeben. server.port = 8090

8. Was ist YAML?

YAML ist eine für Menschen lesbare Datenserialisierungssprache. Es wird normalerweise für Konfigurationsdateien verwendet. Im Vergleich zu Eigenschaftendateien ist die YAML-Datei strukturierter und weniger verwirrend, wenn wir der Konfigurationsdatei komplexe Eigenschaften hinzufügen möchten. Es ist ersichtlich, dass YAML hierarchische Konfigurationsdaten hat.

9. Wie realisiere ich die Sicherheit der Spring Boot-Anwendung?

Um die Sicherheit von Spring Boot zu erreichen, verwenden wir die Spring-Boot-Starter-Sicherheitsabhängigkeit, und die Sicherheitskonfiguration muss hinzugefügt werden. Es erfordert sehr wenig Code. Die Konfigurationsklasse muss WebSecurityConfigurerAdapter erweitern und ihre Methoden überschreiben.

10. Wie integriere ich Spring Boot und ActiveMQ?

Für die Integration von Spring Boot und ActiveMQ verwenden wir Abhängigkeiten. Es erfordert sehr wenig Konfiguration und keinen Boilerplate-Code.

11. Wie verwende ich Spring Boot, um Paging und Sortierung zu implementieren?

Die Verwendung von Spring Boot zum Implementieren von Paging ist sehr einfach. Verwenden Sie Spring Data-JPA, um pageable an die Repository-Methode zu übergeben.

Ich habe 1.000 283 Seiten PDF-Dokumente für Java-Interviewfragen für mehrere Unternehmen im Jahr 2020 zusammengestellt. Freunde, die es benötigen, können klicken: Klicken Sie hier, klicken Sie hier , Code: csdn.
Fügen Sie hier eine Bildbeschreibung ein

12. Was ist Swagger? Haben Sie es mit Spring Boot implementiert?

Swagger wird häufig zur Visualisierung von APIs verwendet und verwendet die Swagger-Benutzeroberfläche, um Online-Sandboxen für Front-End-Entwickler bereitzustellen. Swagger ist ein Tool zum Generieren visueller Darstellungen von RESTful-Webdiensten, zur Spezifikation und zur vollständigen Implementierung des Frameworks. Damit können Dokumente mit der gleichen Geschwindigkeit wie der Server aktualisiert werden.

Bei korrekter Definition durch Swagger können Verbraucher die geringste Implementierungslogik verwenden, um Remotedienste zu verstehen und mit ihnen zu interagieren. Daher eliminiert Swagger das Rätselraten beim Aufrufen von Diensten.

13. Was sind Frühlingsprofile?

Mit Spring Profiles können Benutzer Beans basierend auf Konfigurationsdateien (dev, test, prod usw.) registrieren. Wenn die Anwendung in der Entwicklung ausgeführt wird, können daher nur bestimmte Beans geladen werden, während in PRODUCTION bestimmte andere Beans geladen werden können. Angenommen, unsere Anforderung lautet, dass das Swagger-Dokument nur für die QS-Umgebung gilt und alle anderen Dokumente deaktiviert sind. Dies kann mithilfe von Konfigurationsdateien erfolgen. Spring Boot macht es sehr einfach, Konfigurationsdateien zu verwenden.

14. Was ist Spring Batch?

Spring Boot Batch bietet wiederverwendbare Funktionen, die bei der Verarbeitung einer großen Anzahl von Datensätzen sehr wichtig sind, einschließlich Protokoll / Ablaufverfolgung, Transaktionsverwaltung, Jobverarbeitungsstatistik, Jobneustart, Überspringen und Ressourcenverwaltung.

Es bietet auch erweiterte technische Services und Funktionen. Durch Optimierungs- und Partitionierungstechnologie können extrem hohe Stapel- und leistungsstarke Stapelverarbeitungsaufträge realisiert werden. Einfache und komplexe Großstapelverarbeitungsaufträge können das Framework verwenden, um wichtige und große Informationsmengen auf hochskalierbare Weise zu verarbeiten.

15. Was ist eine FreeMarker-Vorlage?

FreeMarker ist eine Java-basierte Vorlagen-Engine, die sich zunächst auf die Verwendung der MVC-Softwarearchitektur für die dynamische Generierung von Webseiten konzentrierte. Der Hauptvorteil der Verwendung von Freemarker ist die vollständige Trennung der Präsentationsschicht und der Geschäftsschicht. Programmierer können mit Anwendungscode umgehen, während Designer mit HTML-Seitendesign umgehen können. Verwenden Sie schließlich Freemarker, um diese zu kombinieren und die endgültige Ausgabeseite zu erhalten.

16. Wie verwende ich Spring Boot, um die Ausnahmebehandlung zu implementieren?

Spring bietet eine sehr nützliche Möglichkeit, Ausnahmen mit ControllerAdvice zu behandeln. Wir implementieren eine ControlerAdvice-Klasse, um alle von der Controller-Klasse ausgelösten Ausnahmen zu behandeln.

17. Welche Starter-Maven-Abhängigkeiten haben Sie verwendet?

Die folgenden Abhängigkeiten werden verwendet:
Spring-Boot-Starter-Activemq
Spring-Boot-Starter-Sicherheit
Dies hilft, weniger Abhängigkeiten zu erhöhen und Versionskonflikte zu reduzieren.

18. Was ist ein CSRF-Angriff?

CSRF steht für Cross-Site Request Forgery. Dies ist ein Angriff, der den Endbenutzer dazu zwingt, unerwünschte Aktionen für die aktuell authentifizierte Webanwendung auszuführen. CSRF-Angriffe zielen speziell auf Statusänderungsanforderungen ab, nicht auf Datendiebstahl, da Angreifer keine Antworten auf gefälschte Anforderungen anzeigen können.

19. Was ist WebSockets?

WebSocket ist ein Computerkommunikationsprotokoll, das einen Vollduplex-Kommunikationskanal über eine einzelne TCP-Verbindung bereitstellt.

1. WebSocket ist ein bidirektional verwendeter WebSocket-Client oder -Server, um das Senden von Nachrichten zu initiieren.
2. WebSocket ist ein Vollduplex-Client, und die Serverkommunikation ist unabhängig voneinander.
3. Einzelne TCP-Verbindung - Die ursprüngliche Verbindung verwendet HTTP. Anschließend wird diese Verbindung auf eine Socket-basierte Verbindung aktualisiert. Diese einzelne Verbindung wird dann für die gesamte zukünftige Kommunikation verwendet.
4. Im Vergleich zu http ist der Austausch von WebSocket-Nachrichtendaten viel einfacher.

20. Was ist AOP?

Im Softwareentwicklungsprozess werden Funktionen, die mehrere Punkte einer Anwendung umfassen, als Kreuzprobleme bezeichnet. Diese Querschnittsthemen unterscheiden sich von der Hauptgeschäftslogik der Anwendung. Die Trennung dieser Querschnittsthemen von der Geschäftslogik ist daher der Ort für aspektorientierte Programmierung (AOP).

21. Was ist Apache Kafka?

Apache Kafka ist ein verteiltes Publish-Subscribe-Messaging-System. Es ist ein skalierbares, fehlertolerantes Publish-Subscribe-Messaging-System, mit dem wir verteilte Anwendungen erstellen können. Dies ist ein Apache-Projekt der obersten Ebene. Kafka eignet sich für den Offline- und Online-Nachrichtenverbrauch.

22. Wie überwachen wir alle Spring Boot-Mikrodienste?

Spring Boot bietet Monitorendpunkte zur Überwachung der Metriken jedes Mikrodienstes. Diese Endpunkte sind nützlich, um Informationen über Anwendungen zu erhalten (z. B. ob sie gestartet wurden) und ob ihre Komponenten (z. B. Datenbanken usw.) ordnungsgemäß funktionieren. Einer der Hauptnachteile oder Schwierigkeiten bei der Verwendung des Monitors besteht jedoch darin, dass wir die Wissenspunkte der Anwendung separat öffnen müssen, um ihren Status oder Zustand zu verstehen.

Stellen Sie sich einen Microservice mit 50 Anwendungen vor. Der Administrator muss die Ausführungsterminals aller 50 Anwendungen erreichen. Um mit dieser Situation fertig zu werden, verwenden wir das Open-Source-Projekt unter. Es basiert auf dem Spring Boot Actuator, der eine Web-Benutzeroberfläche bietet, mit der wir die Metriken mehrerer Anwendungen visualisieren können.

Zu guter Letzt

Stellen Sie kostenlose Lernmaterialien für die Java-Architektur bereit. Zu den Inhalten der Lerntechnologie gehören: Spring, Dubbo, MyBatis, RPC, Quellcode-Analyse, hohe Parallelität, hohe Leistung, verteilt, Leistungsoptimierung, erweiterte Entwicklung von Microservice-Architekturen usw.

Freunde in Not können klicken: Klicken Sie hier! Klicke hier! , Code: csdn.

Es gibt auch Java-Kernwissenspunkte + eine vollständige Sammlung von Lernmaterialien und -videos für Architekten + Erstbuch-Interviewbücher + Vorlagen für Interview-Lebensläufe + Interviewfragen für Alibaba Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili + Sammlung von Spring-Quellcode + Java-Architektur Praktisches E-Book + 2020 neueste Interviewfragen von großen Herstellern.
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/weixin_48011329/article/details/109332329
Empfohlen
Rangfolge