Die 22 Fragen zum Interview mit dem Spring Boot, die von Ali P7-Chef geteilt wurden, kamen endlich umsonst vorbei!

Fragen zum Spring Boot-Interview

1. Was ist Spring Boot?

2. Was sind die Vorteile von Spring Boot?

3. Was ist JavaConfig?

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

5. Was ist der Monitor in Spring Boot?

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

7. Wie führe ich Spring Boot-Anwendungen an benutzerdefinierten Ports aus?

8. Was ist YAML?

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

10. Wie integriere ich Spring Boot und ActiveMQ?

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

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

13. Was sind Frühlingsprofile?

14. Was ist Spring Batch?

15. Was ist eine FreeMarker-Vorlage?

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

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

18. Was ist ein CSRF-Angriff?

19. Was ist WebSockets?

20. Was ist AOP?

21. Was ist Apache Kafka?

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

 

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 werden alle verschiedenen Funktionen des Frühlingsprojekts sehen, 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. Spring Boot 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?

Die Vorteile von Spring Boot sind:

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 Eigenschaften 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. So hilft es, 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 voll ausnutzen. 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. Tatsächlich halten viele Leute das Mischen und Anpassen von JavaConfig mit XML für ideal.

(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 ein Casting oder eine stringbasierte 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 am häufigsten nachgefragte Funktion für Entwickler. Das DevTools-Modul erfüllt die Anforderungen von Entwicklern vollständig. Dieses Modul wird in der Produktionsumgebung deaktiviert. Es bietet auch eine H2-Datenbankkonsole zum besseren Testen von Anwendungen.

 
  1. <dependency>

  2. <groupId>org.springframework.boot</groupId>

  3. <artifactId>spring-boot-devtools</artifactId>

  4. <optional>true</optional>

  5.  

 

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. Es gibt mehrere Indikatoren, die in der Produktionsumgebung überprüft und überwacht werden müssen. 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 hinter einer Firewall auf den Aktuatorendpunkt zugegriffen wird.

 

7. Wie führe ich Spring Boot-Anwendungen an benutzerdefinierten Ports 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. Verglichen mit der Eigenschaftendatei 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 implementiere 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.

 

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 Menge an 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. Diese Funktionen sind sehr wichtig, wenn eine große Anzahl von Datensätzen verarbeitet wird, einschließlich Protokoll / Ablaufverfolgung, Transaktionsverwaltung, Jobverarbeitungsstatistik, Jobneustart, Überspringen und Ressourcenverwaltung. Es bietet auch fortschrittlichere technische Services und Funktionen. Durch Optimierungs- und Partitionierungstechnologie können extrem hohe Stapel- und leistungsstarke Stapelverarbeitungsaufträge realisiert werden. Einfache und komplexe Aufträge für die Verarbeitung großer Stapel 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. Der Programmierer kann den Anwendungscode und der Designer das HTML-Seitendesign verarbeiten. 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, ControllerAdvice zur Behandlung von Ausnahmen zu verwenden. 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?

Einige der 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 der Angreifer die Antwort auf die gefälschte Anforderung nicht anzeigen kann.

 

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 alle zukünftigen Kommunikationen 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. Daher ist die Trennung dieser Querschnittsthemen von der Geschäftslogik 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 Spring Boot Actuator, das eine Web-Benutzeroberfläche bietet, mit der wir die Metriken mehrerer Anwendungen visualisieren können.

Es dauerte 1 Monat, um im Jahr 2020 1.000 Java-Interviewfragen für mehrere Unternehmen und mehr als 400 Seiten PDF-Dokumente zu klären. Begrüßen Sie alle, um auf mein offizielles Konto zu achten: Kylin ändert Fehler, Artikel werden darin aktualisiert und die sortierten Informationen wird auch im Inneren platziert.

Als Antwort auf die im obigen Interview gestellten Wissenspunkte habe ich die meisten Interviewfragen und -antworten zusammengefasst, die im Java-Programmiererinterview des Internetunternehmens enthalten sind. Dokumente und Architekturmaterialien werden mit allen geteilt. Ich hoffe, Ihnen vor dem Interview helfen zu können Wenn Sie einen guten Job finden, sparen Sie auch Zeit für alle, im Internet nach Informationen zu suchen, um diese zu lernen.

 

Zu guter Letzt

Begrüßen Sie alle, um miteinander zu kommunizieren. Es ist nicht einfach, die Informationen zu organisieren. Wenn Ihnen der Artikel gefällt, denken Sie daran, mir zu folgen und mir ein "Gefällt mir" zu geben. Vielen Dank für Ihre Unterstützung!

Ich denke du magst

Origin blog.csdn.net/QLCZ0809/article/details/112253564
Empfohlen
Rangfolge