Ich habe heute einen College-Studenten getroffen: Können Sie diese 82 SpringBoot-Interviewfragen nicht beantworten? Willst du immer noch die große Fabrik betreten?

Spring Boot-Interviewfragen

1. Was ist Spring Boot?

Spring ist im Laufe der Jahre immer komplexer geworden, da neue Funktionen hinzugefügt wurden. Besuchen Sie einfach die Seite und wir sehen die verschiedenen Funktionen aller Spring-Projekte, die in unserer Anwendung verwendet werden können. Wenn wir ein neues Spring-Projekt starten müssen, müssen wir den Build-Pfad hinzufügen oder Maven-Abhängigkeiten hinzufügen, den Anwendungsserver konfigurieren und die Spring-Konfiguration hinzufügen. Der Start eines neuen Frühlingsprojekts erfordert also 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 bestehenden Federgerüst aufgebaut. Mit Spring Boot vermeiden wir den gesamten Boilerplate-Code und die Konfiguration, die wir zuvor durchführen mussten. Daher kann Spring Boot uns dabei helfen, vorhandene Spring-Funktionen mit minimalem Aufwand robuster zu nutzen

2. Warum SpringBoot verwenden?

Spring Boot hat viele Vorteile, wie zum Beispiel:

1. Unabhängiger Betrieb

Spring Boot bettet auch verschiedene Servlet-Container ein, Tomcat, Jetty usw. Jetzt muss es nicht mehr als Kriegspaket gepackt und im Container bereitgestellt werden, sondern Spring Boot kann unabhängig laufen, solange es in ein ausführbares JAR-Paket gepackt wird, und Alle abhängigen Pakete befinden sich in einem JAR-Paket.

2. Vereinfachte Konfiguration

Der Spring-Boot-Starter-Web-Starter hängt automatisch von anderen Komponenten ab, wodurch die Konfiguration von maven reduziert wird.

3. Automatische Konfiguration

Spring Boot kann Beans automatisch gemäß den Klassen und JAR-Paketen im aktuellen Klassenpfad konfigurieren.Wenn Sie beispielsweise einen Spring-Boot-Starter-Web-Starter hinzufügen, können Sie Webfunktionen ohne weitere Konfiguration haben.

Viertens, keine Codegenerierung und XML-Konfiguration

Bei der Konfiguration von Spring Boot findet keine Codegenerierung statt, und alle Konfigurationsarbeiten können ohne XML-Konfigurationsdateien durchgeführt werden, und das alles mit Hilfe von bedingten Annotationen, was auch eine der Kernfunktionen von Spring 4.x ist.

5. Anwendungsüberwachung

Spring Boot stellt eine Reihe von Endpunkten bereit, um Dienste und Anwendungen zu überwachen und Zustandsprüfungen durchzuführen

3. Was sind die Vorteile von Spring Boot?

Die Vorteile von Spring Boot sind:

  • 1. Reduzieren Sie Entwicklungs- und Testzeit und -aufwand.

  • 2. Verwenden Sie JavaConfig, um die Verwendung von XML zu vermeiden.

  • 3. Vermeiden Sie eine große Anzahl von Maven-Importen und verschiedene Versionskonflikte.

  • 4. Ratschläge zu Entwicklungsmethoden geben.

  • 5. Beginnen Sie schnell mit der Entwicklung, indem Sie Standardwerte angeben.

  • 6. Es wird kein separater Webserver benötigt. Das bedeutet, dass Sie Tomcat, Glassfish oder irgendetwas anderes nicht mehr starten müssen.

  • 7. Weniger Konfiguration erforderlich, da keine web.xml-Datei vorhanden ist. Fügen Sie einfach die mit @Configuration kommentierte Klasse hinzu, fügen Sie dann die mit @Bean kommentierte Methode hinzu, und Spring lädt das Objekt automatisch und verwaltet es wie zuvor. Sie können sogar @Autowired zu einer Bean-Methode hinzufügen, damit Spring die benötigten Abhängigkeiten automatisch verdrahtet.

  • 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 nachfolgende Anwendungseigenschaftendateien in (application{environment}.properties).

4. Was ist die zentrale Anmerkung von Spring Boot? Aus welchen Anmerkungen besteht es hauptsächlich?

Die Annotation der Startklasse ist @SpringBootApplication, die auch die Kernannotation von Spring Boot darstellt. Die Hauptkombination umfasst die folgenden drei Annotationen:

@SpringBootConfiguration: Kombiniert die Annotation @Configuration, um die Funktion der Konfigurationsdatei zu implementieren. @EnableAutoConfiguration: Aktivieren Sie die automatische Konfigurationsfunktion oder deaktivieren Sie eine automatische Konfigurationsoption, wie z. B. das Deaktivieren der automatischen Datenquellenkonfigurationsfunktion: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).

@ComponentScan: Spring-Komponenten-Scan

5. Welche Möglichkeiten gibt es, Spring Boot auszuführen?

1) Packen Sie den Befehl oder fügen Sie ihn in den Container ein, um ihn auszuführen. 2) Verwenden Sie das Maven/Gradle-Plugin, um ihn auszuführen. 3) Führen Sie die auszuführende Hauptmethode direkt aus

6. Wie versteht man Starter in Spring Boot?

Was sind Starter:

Starter können als Starter verstanden werden, die eine Reihe von Abhängigkeitspaketen enthalten, die in die Anwendung integriert werden können.Sie können Spring und andere Technologien aus einer Hand integrieren, ohne überall nach Beispielcode und Abhängigkeitspaketen suchen zu müssen. Wenn Sie Spring JPA für den Zugriff auf die Datenbank verwenden möchten, fügen Sie einfach die
starter-Abhängigkeit springboot-starter-data-jpa hinzu und Sie können sie verwenden. Starter enthalten viele Abhängigkeiten, die im Projekt benötigt werden, sie können schnell und kontinuierlich ausgeführt werden und sind eine Reihe von unterstützten transitiven Abhängigkeiten für die Verwaltung.

Starter benannt:

Die offiziellen Starter von Spring Boot heißen spring-boot-starter- und repräsentieren einen bestimmten Anwendungstyp. Starter von Drittanbietern können nicht mit spring-boot starten, sie sind offiziell von Spring Boot reserviert. Generell sollte ein Drittanbieter so benannt werden, wie mybatis
-spring-boot-starter von mybatis.

Kategorie Vorspeisen:

1. Starter der Spring Boot-Anwendungsklasse

Bild.png

2. Spring Boot-Produktionsstarter

Bild.png

.andere Launcher von Drittanbietern

7. Wie führe ich einen bestimmten Code aus, wenn Spring Boot startet?

Wenn Sie beim Start von Spring Boot einen bestimmten Code ausführen möchten, können Sie die Schnittstellen ApplicationRunner oder CommandLineRunner implementieren.Diese beiden Schnittstellen werden auf die gleiche Weise implementiert und stellen nur eine Ausführungsmethode bereit. CommandLineRunner: Beginnen Sie mit dem Abrufen von Befehlszeilenparametern

8. Benötigt Spring Boot einen separaten Container, um ausgeführt zu werden?

Keine Notwendigkeit, eingebaute Container wie Tomcat/Jetty

9. Was ist ein Monitor in Spring Boot?

Spring Boot Aktuator ist eine der wichtigen Funktionen im Spring Boot Framework. Spring-Boot-Monitore helfen Ihnen, auf den aktuellen Status laufender Anwendungen in der Produktion zuzugreifen. Es gibt mehrere Metriken, die in einer Produktionsumgebung überprüft und überwacht werden müssen. Sogar einige externe Anwendungen verwenden diese Dienste möglicherweise, um Warnmeldungen an das zuständige 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

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

Spring bietet eine sehr nützliche Methode zur Behandlung von Ausnahmen mit ControllerAdvice. Wir behandeln alle Ausnahmen, die von der Controller-Klasse ausgelöst werden, indem wir eine ControlerAdvice-Klasse implementieren

11. Wie verstehen Sie Starter in Spring Boot?

Starter können als Starter verstanden werden, die eine Reihe von Abhängigkeitspaketen enthalten, die in die Anwendung integriert werden können.Sie können Spring und andere Technologien aus einer Hand integrieren, ohne überall nach Beispielcode und Abhängigkeitspaketen suchen zu müssen. Wenn Sie Spring JPA für den Zugriff auf die Datenbank verwenden möchten, fügen Sie einfach die
starter-Abhängigkeit spring-boot-starter-data-jpa hinzu und Sie können sie verwenden

12. Was sind die am häufigsten verwendeten Springboot-Starter?

spring-boot-starter-web Embedded Tomcat und Webentwicklung erfordern Servlet- und JSP-Unterstützung

spring-boot-starter-data-jpa-Datenbankunterstützung spring-boot-starter-data-redis redis-Datenbankunterstützung spring-boot-starter-data-solr solr-Unterstützung

mybatis-spring-boot-starter Mybatis-Integrationsstarter von Drittanbietern

13. Wie kann SpringBoot Hot Deployment realisieren?

Es gibt zwei Hauptwege: Spring
Loaded Spring-boot-devtools

14. So verstehen Sie die Ladereihenfolge der Spring Boot-Konfiguration

In Spring Boot kann die Konfiguration auf folgende Weise geladen werden. 1) Eigenschaftsdatei;

2) YAML-Dateien 3) Systemumgebungsvariablen;

4) Kommandozeilenargumente; etc...

Willkommen beim Java-Architekturentwicklungsaustausch: 857710406, weitere Interviewfragen und fortgeschrittene Videos werden kostenlos verteilt!

15. Was sind die zentralen Konfigurationsdateien von Spring Boot? Was ist ihr Unterschied?

Die zentralen Konfigurationsdateien von Spring Boot sind die Anwendungs- und Bootstrap-Konfigurationsdateien. Die Anwendungskonfigurationsdatei ist leicht verständlich und wird hauptsächlich zur automatischen Konfiguration von Spring Boot-Projekten verwendet. Die Bootstrap-Konfigurationsdatei hat die folgenden Anwendungsszenarien.

.Wenn Sie das Spring Cloud Config-Konfigurationszentrum verwenden, müssen Sie Konfigurationseigenschaften hinzufügen, die mit dem Konfigurationszentrum in der Bootstrap-Konfigurationsdatei verbunden sind, um die Konfigurationsinformationen des externen Konfigurationszentrums zu laden.

Einige feste Eigenschaften, die nicht überschrieben werden können;

.Einige Verschlüsselungs-/Entschlüsselungsszenarien

16. So integrieren Sie Spring Boot und ActiveMQ

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

17. Was ist JavaConfig?

Spring JavaConfig ist ein Produkt der Spring-Community, das einen reinen Java-Ansatz zum Konfigurieren des Spring IoC-Containers bietet. Es hilft also, die XML-Konfiguration zu vermeiden. Die Vorteile der Verwendung von JavaConfig sind:

1. Objektorientierte Konfiguration. Da Konfigurationen in JavaConfig als Klassen definiert sind, können Benutzer die objektorientierten Funktionen von Java voll ausschöpfen. Eine Konfigurationsklasse kann von einer anderen erben, ihre @Bean-Methoden überschreiben usw.

2. Reduzieren oder eliminieren Sie die XML-Konfiguration. Die Vorteile einer externalisierten Konfiguration basierend auf Dependency-Injection-Prinzipien wurden demonstriert. Viele Entwickler möchten jedoch nicht zwischen XML und Java hin und her wechseln. JavaConfig bietet Entwicklern eine reine Java-Methode zum Konfigurieren von Spring-Containern mit einem ähnlichen Konzept wie die XML-Konfiguration. Technisch gesehen ist es möglich, den Container nur mit den JavaConfig-Konfigurationsklassen zu konfigurieren, aber in der Praxis denken viele Leute, dass das Mischen und Anpassen von JavaConfig und XML ideal ist.

3. Typsicherheit und Refactoring-freundlich. JavaConfig bietet eine typsichere Möglichkeit, den Spring-Container zu konfigurieren. Dank der Unterstützung von Generika in Java 5.0 können Beans jetzt nach Typ statt nach Name abgerufen werden, ohne Casting oder String-basierte Suche.

18. Wie kann ich Änderungen in Spring Boot neu laden, ohne den Server neu zu starten?

Dies kann mit DEV-Tools 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 Development Tools (DevTools)-Modul, das zur Verbesserung der Entwicklerproduktivität beiträgt. Eine große Herausforderung 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. DevTools-Module erfüllen die Anforderungen von Entwicklern vollständig. Dieses Modul wird in der Produktionsumgebung deaktiviert. Es bietet auch eine H2-Datenbankkonsole, um die Anwendung besser zu testen.

org.springframework.boot spring-boot-devtools wahr

19. Was ist ein Monitor in Spring Boot?

Spring Boot Aktuator ist eine der wichtigen Funktionen im Spring Boot Framework. Spring-Boot-Monitore helfen Ihnen, auf den aktuellen Status laufender Anwendungen in der Produktion zuzugreifen. Es gibt mehrere Metriken, die in einer Produktionsumgebung überprüft und überwacht werden müssen. Sogar einige externe Anwendungen verwenden diese Dienste möglicherweise, um Warnmeldungen an das zuständige 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.

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

Alle sensiblen HTTP-Endpunkte sind standardmäßig sicher und nur Benutzer mit der ACTUATOR-Rolle können darauf zugreifen. Die Sicherheit wird
mithilfe der Standardmethode HttpServletRequest.isUserInRole implementiert. Wir können verwenden, um die Sicherheit zu deaktivieren. Das Deaktivieren der Sicherheit wird nur empfohlen, wenn auf den Aktuator-Endpunkt hinter einer Firewall zugegriffen wird.

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

Um eine Spring Boot-Anwendung auf einem benutzerdefinierten Port auszuführen, können Sie den Port in application.properties angeben.

server.port=8090

22. Was ist YAML?

YAML ist eine für Menschen lesbare Datenserialisierungssprache. Es wird normalerweise für Konfigurationsdateien verwendet.

Im Vergleich zu Eigenschaftsdateien sind YAML-Dateien strukturierter und weniger verwirrend, wenn wir komplexe Eigenschaften zu Konfigurationsdateien hinzufügen möchten. Es ist ersichtlich, dass YAML hierarchische Konfigurationsdaten hat.

23. Wie wird die Sicherheit der Spring Boot-Anwendung implementiert?

Um die Spring Boot-Sicherheit zu implementieren, verwenden wir die
spring-boot-starter-security-Abhängigkeit und müssen eine Sicherheitskonfiguration hinzufügen. Es erfordert sehr wenig Code. Die Konfigurationsklasse muss WebSecurityConfigurerAdapter erweitern und ihre Methoden überschreiben.

24. 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 erfordert keinen Boilerplate-Code.

25. Wie implementiert man Paging und Sortierung mit Spring Boot?

Die Implementierung der Paginierung mit Spring Boot ist sehr einfach. Das Übergeben einer auslagerbaren Methode an eine Repository-Methode ist mit Spring Data-JPA möglich.

26. Was ist Swagger? Hast du es mit Spring Boot implementiert?

Swagger wird häufig zur Visualisierung von APIs verwendet, wobei die Swagger-Benutzeroberfläche verwendet wird, um eine Online-Sandbox für Front-End-Entwickler bereitzustellen. Swagger ist ein Tool, eine Spezifikation und eine vollständige Framework-Implementierung zum Generieren visueller Darstellungen von RESTful-Webdiensten. Dadurch können Dokumente mit der gleichen Geschwindigkeit wie der Server aktualisiert werden. Bei richtiger Definition über Swagger können Verbraucher eine minimale Menge an Implementierungslogik verwenden

um Remote-Dienste zu verstehen und mit ihnen zu interagieren. So macht Swagger das Rätselraten beim Anrufen von Diensten überflüssig.

27. Was sind Federprofile?

Mit Spring-Profilen können Benutzer Beans basierend auf Konfigurationsdateien (dev, test, prod usw.) registrieren. Wenn die Anwendung also in der Entwicklung läuft, können nur einige Beans geladen werden, während in der PRODUKTION einige andere Beans geladen werden können. Angenommen, unsere Anforderung ist, dass die Swagger-Dokumentation nur für QA-Umgebungen gilt und alle anderen Dokumentationen deaktiviert sind. Dies kann mithilfe von Konfigurationsdateien erfolgen. Spring Boot macht das Arbeiten mit Konfigurationsdateien sehr einfach.

28. Was ist Spring Batch?

Spring Boot Batch bietet wiederverwendbare Funktionen, die beim Umgang mit einer großen Anzahl von Datensätzen wichtig sind, einschließlich Protokollierung/Ablaufverfolgung, Transaktionsverwaltung, Auftragsverarbeitungsstatistiken, Auftragsneustarts, Überspringen und Ressourcenverwaltung. Es bietet auch fortschrittlichere technische Dienste und Funktionen, die durch Optimierungs- und Partitionierungstechniken extrem hohe Batch- und Hochleistungs-Batch-Jobs ermöglichen. Sowohl einfache als auch komplexe Batch-Jobs mit hohem Volumen können das Framework nutzen, um erhebliche Informationsmengen auf hochgradig skalierbare Weise zu verarbeiten.

29. Was ist eine FreeMarker-Vorlage?

FreeMarker ist eine Java-basierte Template-Engine, die sich ursprünglich auf die dynamische Generierung von Webseiten unter Verwendung der MVC-Softwarearchitektur konzentrierte. Der Hauptvorteil der Verwendung von Freemarker ist die vollständige Trennung von Präsentations- und Geschäftsebene. Programmierer können mit Anwendungscode umgehen, während Designer mit dem Design von HTML-Seiten umgehen können. Schließlich können diese mit Freemarker kombiniert werden, um die endgültige Ausgabeseite zu erhalten.

30. Wie verwendet man Spring Boot, um die Ausnahmebehandlung zu implementieren?

Spring bietet eine sehr nützliche Methode zur Behandlung von Ausnahmen mit ControllerAdvice. Wir behandeln alle Ausnahmen, die von der Controller-Klasse ausgelöst werden, indem wir eine ControlerAdvice-Klasse implementieren.

31. Welche Starter-Maven-Abhängigkeiten verwenden Sie?

Einige der folgenden Abhängigkeiten werden verwendet

Spring-Boot-Starter-Activemq
Spring-Boot-Starter-Sicherheit

Dies trägt dazu bei, weniger Abhängigkeiten hinzuzufügen und Versionskonflikte zu reduzieren.

32. Was ist ein CSRF-Angriff?

CSRF steht für Cross Site Request Forgery. Dies ist ein Angriff, der Endbenutzer dazu zwingt, unerwünschte Aktionen an derzeit authentifizierten Webanwendungen durchzuführen. CSRF-Angriffe zielen speziell auf Statusänderungsanfragen ab, nicht auf Datendiebstahl, da der Angreifer die Antwort auf eine gefälschte Anfrage nicht sehen kann.

Dies trägt dazu bei, weniger Abhängigkeiten hinzuzufügen und Versionskonflikte zu reduzieren.

33. Was sind WebSockets?

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

Bild.png

  • 1. WebSocket ist bidirektional – die Verwendung von WebSocket-Client oder -Server kann das Senden von Nachrichten initiieren.

  • 2. WebSocket ist Vollduplex – Client- und Serverkommunikation sind voneinander unabhängig.

  • 3. Eine einzelne TCP-Verbindung – die anfängliche Verbindung verwendet HTTP, dann wird diese Verbindung auf eine Socket-basierte Verbindung aktualisiert. Diese einzelne Verbindung wird dann für alle zukünftigen Kommunikationen verwendet

  • 4. Leicht – Im Vergleich zu http ist der Nachrichtendatenaustausch über WebSocket viel leichter.

34. Was ist AOP?

Im Softwareentwicklungsprozess werden Funktionen, die sich über mehrere Punkte in einer Anwendung erstrecken, als Querschnittsprobleme bezeichnet. Diese Querschnittsthemen sind nicht identisch mit der Hauptgeschäftslogik der Anwendung. Um diese Querschnittsthemen von der Geschäftslogik zu trennen, kommt die aspektorientierte Programmierung (AOP) ins Spiel.

35. 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-Top-Level-Projekt. Kafka eignet sich für den Offline- und Online-Nachrichtenkonsum.

36. Wie können wir alle Spring Boot-Microservices überwachen?

Spring Boot stellt Überwachungsendpunkte bereit, um Metriken für einzelne Microservices zu überwachen. Diese Endpunkte sind nützlich, um Informationen über Anwendungen zu erhalten (z. B. ob sie aktiv sind) und ob ihre Komponenten (z. B. Datenbanken) ordnungsgemäß funktionieren. Ein großer Nachteil oder eine Schwierigkeit bei der Verwendung des Monitors besteht jedoch darin, dass wir den Wissenspunkt der Anwendung einzeln öffnen müssen, um ihren Zustand oder Zustand zu erfahren. Stellen Sie sich einen Microservice mit 50 Anwendungen vor, der Administrator müsste das Ausführungsterminal für alle 50 Anwendungen treffen. Um uns bei der Bewältigung dieser Situation zu helfen, verwenden wir das Open-Source-Projekt unter . Es basiert auf Spring Boot Actuator, das eine Web-Benutzeroberfläche bereitstellt, mit der wir Metriken für mehrere Anwendungen visualisieren können.

37. Welche Formate haben Spring Boot-Konfigurationsdateien? Was ist der Unterschied zwischen ihnen?

.properties und .yml, der Hauptunterschied zwischen ihnen ist das unterschiedliche Schreibformat. 1).Eigenschaften

app.user.name=javastack

2).yml

App:
Benutzer:
Name: Javastack

Außerdem unterstützt das .yml-Format nicht die Annotation @PropertySource zum Importieren der Konfiguration.

38. Wie können Spring Boot-Funktionen aktiviert werden?

1) Erben Sie das
Projekt spring-boot-starter-parent 2) Importieren Sie die Abhängigkeiten des Projekts spring-boot-dependencies

39. Was ist die Verzeichnisstruktur von Spring Boot?

cn
±javastack
±MyApplication.java|
  ±Customer.java
±CustomerController.java±CustomerService.java±CustomerRepository.java
±order
±Order.java
±OrderController.java±OrderService.java±OrderRepository.java

Diese Verzeichnisstruktur ist die gängige und empfohlene Vorgehensweise, und die Annotation @SpringBootApplication wird der Haupteintragsklasse hinzugefügt, um verschiedene Funktionen von Spring Boot zu aktivieren, z. B. die automatische Konfiguration, das Scannen von Komponenten usw.

40. Wie kann Spring Boot ausgeführt werden?

1) Packen Sie den Befehl oder fügen Sie ihn in den Container ein, um ihn auszuführen. 2) Verwenden Sie das Maven/Gradle-Plugin, um ihn auszuführen. 3) Führen Sie die auszuführende Hauptmethode direkt aus

41. Was ist das Prinzip der automatischen Konfiguration von Spring Boot?

Die Annotationen @EnableAutoConfiguration, @Configuration und @ConditionalOnClass stellen den Kern der automatischen Konfiguration dar. Erstens muss es sich um eine Konfigurationsdatei handeln, und zweitens wird sie automatisch konfiguriert, je nachdem, ob diese Klasse im Klassenpfad vorhanden ist.

42. Wie führe ich einen bestimmten Code aus, wenn Spring Boot startet?

Sie können die Schnittstellen ApplicationRunner oder CommandLineRunner implementieren.Diese beiden Schnittstellen werden auf die gleiche Weise implementiert und stellen beidenur eine Ausführungsmethode bereit.

43. Auf wie viele Arten hat Spring Boot die Konfiguration zu lesen?

Spring Boot kann Variablen über @PropertySource, @Value, @Environment, @ConfigurationProperties binden

44. Welche Protokollierungsframeworks unterstützt Spring Boot? Welches ist das empfohlene und standardmäßige Protokollierungsframework?

Spring Boot unterstützt Java Util Logging, Log4j2, Lockback als Protokollierungsframework. Wenn Sie Starters Starter verwenden, verwendet Spring Boot Logback als Standardprotokollierungsframework

45. Wie definiert Spring Boot mehrere Sätze unterschiedlicher Umgebungskonfigurationen?

Stellen Sie mehrere Sätze von Konfigurationsdateien bereit, z. B.:

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties

Geben Sie zur Laufzeit eine bestimmte Konfigurationsdatei an

46. ​​​​Ist Spring Boot mit alten Spring-Projekten kompatibel und wie?

Verwenden Sie aus Kompatibilitätsgründen die Annotation @ImportResource, um die alte Spring-Projektkonfigurationsdatei zu importieren.

47. Welche Möglichkeiten gibt es, Spring Boot-Anwendungen zu schützen?

Verwenden Sie HTTPS in der Produktion

Verwenden Sie Snyk, um Ihre Abhängigkeiten zu überprüfen und auf die neueste Version zu aktualisieren

Aktivieren Sie den CSRF-Schutz

Verhindern Sie XSS-Angriffe mit Inhaltssicherheitsrichtlinien…

48. Welche neuen Funktionen hat Spring Boot 2.X? Was ist der Unterschied zu 1.X?

Konfigurationsänderungen

Upgrade der JDK-Version

Upgrade der Klassenbibliothek von Drittanbietern

Reaktive Spring-Programmierung mit HTTP/2-Unterstützung

Weitere Verbesserungen und Erweiterungen der Bindungen von Konfigurationseigenschaften…

49. Wie kann ich Änderungen in Spring Boot neu laden, ohne den Server neu zu starten?

Dies kann mit DEV-Tools 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 Development Tools (DevTools)-Modul, das zur Verbesserung der Entwicklerproduktivität beiträgt. Eine große Herausforderung 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. DevTools-Module erfüllen die Anforderungen von Entwicklern vollständig. Dieses Modul wird in der Produktionsumgebung deaktiviert. Es bietet auch eine H2-Datenbankkonsole, um die Anwendung besser zu testen.

org.springframework.bootspring-boot-devtoolstrue

50. Der Prozess der Springboot-Integration von mybatis

Fügen Sie die Starter-Maven-Abhängigkeit von mybatis hinzu

org.mybatis.spring.bootmybatis-spring-boot-starter1.2.0

Fügen Sie die Annotation @Mapper zur Schnittstelle von mybatis hinzu, um die Datenquelleninformationen in application.yml zu konfigurieren

51. Was ist der Unterschied zwischen Spring Boot, Spring MVC und Spring?

SpringFrame

Das wichtigste Feature von Spring Framework ist die Dependency Injection. Alle SpringModule sind entweder Dependency Injection oder IOC Inversion of Control.

Wenn wir DI oder IOC richtig einsetzen, können wir lose gekoppelte Anwendungen entwickeln. Unit-Tests von lose gekoppelten Anwendungen können einfach durchgeführt werden.

SpringMVC

Spring MVC bietet einen entkoppelten Ansatz für die Entwicklung von Webanwendungen. Durch die Verwendung einiger einfacher Konzepte wie DispatcherServelet, MoudlAndView und ViewResolver wird die Entwicklung von Webanwendungen sehr einfach.

SpringBoot

Das Problem mit Spring und SpringMVC ist, dass viele Parameter konfiguriert werden müssen.

Bild.png

Spring Boot löst dieses Problem mit einem automatisch konfigurierten und gestarteten Projekt. Um produktionsbereite Anwendungen schneller zu erstellen, bietet Spring Boot einige nicht funktionale Funktionen.

52. Was ist Spring Boot Stater?

Ein Launcher ist ein praktischer Satz von Abhängigkeitsdeskriptoren, die in ein eigenes Programm eingefügt werden können. Sie können alle Spring- und verwandten Technologien, die Sie benötigen, an einem Ort abrufen, ohne jede Menge Beispielcode je nach Deskriptoren suchen und kopieren und einfügen zu müssen.

Wenn Sie beispielsweise Sping und JPA für den Zugriff auf die Datenbank verwenden möchten, muss Ihr Projekt lediglich die
Abhängigkeit spring-boot-starter-data-jpa enthalten, und Sie können loslegen.

Frage 4 Können Sie ein Beispiel geben, um mehr über Stater zu erklären?

Betrachten wir ein Beispiel für Stater – Spring Boot Stater Web.

Wenn Sie eine Webanwendung oder eine Anwendung entwickeln möchten, die REST-Dienste verfügbar macht. Spring Boot Start Web wird bevorzugt. Lassen Sie uns mit Spring Initializr ein schnelles Projekt für Spring Boot Start Web erstellen.

Abhängigkeiten für Spring Boot Start Web

 org.springframework.boot spring-boot-starter-web

Die folgenden Screenshots zeigen die verschiedenen Abhängigkeiten, die unserer Anwendung hinzugefügt wurden

Bild.png

Abhängigkeiten können unterteilt werden

Bild.png

Jede klassische Webanwendung verwendet alle diese Abhängigkeiten. Spring Boot Starter Web wird mit diesen Abhängigkeiten vorinstalliert geliefert.

Als Entwickler muss ich mich nicht mehr um diese Abhängigkeiten und ihre kompatiblen Versionen kümmern.

53. Welche anderen Starter-Projektoptionen bietet Spring Boot?

Spring Boot bietet auch andere Starterprojekte, einschließlich typischer Abhängigkeiten für die Entwicklung bestimmter Arten von Anwendungen.

spring-boot-starter-web-services – SOAP-Webdienste spring-boot-starter-web – Web- und RESTful-Anwendungen spring-boot-starter-test – Einheiten- und Integrationstests spring-boot-starter-jdbc – Traditionelles JDBC

spring-boot-starter-hateoas – Fügt HATEOAS-Funktionalität zu Diensten hinzu

spring-boot-starter-security – Authentifizierung und Autorisierung mit SpringSecurity spring-boot-starter-data-jpa – Spring Data JPA mit Hibeernate

spring-boot-starter-data-rest – Veröffentlichen Sie einfache REST-Dienste mit Spring Data REST

54. Wie erstellt Spring schnell produktionsreife Anwendungen?

Spring Boot ist auf schnelle produktionsbereite Anwendungen ausgerichtet. Zu diesem Zweck bietet es einige nicht funktionale Funktionen wie Caching, Protokollierung, Überwachung und eingebettete Server.

spring-boot-starter-actuator – Verwenden Sie einige erweiterte Funktionen wie das Überwachen und Verfolgen Ihrer Anwendung

spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat – wählen Sie Ihren spezifischen eingebetteten Servlet-Container

spring-boot-starter-cache - Welche Java-Version ist mindestens erforderlich, um die Caching-Unterstützung von Spring Framework zu aktivieren ###Spring2 und Spring5?

Spring Boot 2.0 erfordert Java 8 oder neuer. Java6 und Java7 werden nicht mehr unterstützt. Literatur-Empfehlungen:

55. Was ist der einfachste Weg, ein Spring Boot-Projekt zu erstellen?

Spring Initializr ist ein großartiges Tool zum Starten von Spring Boot-Projekten.

spring-boot-starter-cache - Welche Java-Version ist mindestens erforderlich, um die Caching-Unterstützung von Spring Framework zu aktivieren ###Spring2 und Spring5?

Spring Boot 2.0 erfordert Java 8 oder neuer. Java6 und Java7 werden nicht mehr unterstützt.

Bild.png

Wie im obigen Bild gezeigt, müssen wir einige Schritte ausführen: Melden Sie sich bei Spring Initializr an, wählen Sie wie folgt aus: Wählen Sie
com.in28minutes.springboot als Gruppe aus

Wählen Sie studet-services und wählen Sie die folgenden Abhängigkeiten für die Komponente aus

WebActuatorDevTools

Klicken Sie hier, um GenerateProject zu generieren

Importieren Sie das Projekt in Eclipse. file-import-existing-Maven-Projekt

56. Ist Spring Initializr die einzige Möglichkeit, Spring Boot-Projekte zu erstellen?

nein.

Spring Initiatlizr erleichtert das Erstellen von Spring Boot-Projekten, Sie können ein Projekt jedoch auch starten, indem Sie ein Maven-Projekt einrichten und die richtigen Abhängigkeiten hinzufügen. In unserem Frühlingskurs verwenden wir zwei Methoden, um Projekte zu erstellen.

Die erste Methode ist http://start.spring.io.

Eine andere Möglichkeit besteht darin, dies manuell im Projekt mit dem Titel "Basic Web Application" zu tun.

Es gibt mehrere wichtige Schritte, um ein Maven-Projekt manuell einzurichten:

Verwenden Sie in Eclipse File - New Maven Project, um ein neues Projekt zu erstellen und Abhängigkeiten hinzuzufügen.

Maven-Plugin hinzufügen.

Fügen Sie die Spring Boot-Anwendungsklasse hinzu. Hier sind die Vorbereitungen abgeschlossen!

57. Wie verwende ich SpringBoot, um meine Anwendung automatisch neu zu laden?

Verwenden Sie Spring Boot-Entwicklungstools.

Das Hinzufügen der Spring Boot-Entwicklungstools zu Ihrem Projekt ist einfach.

Fügen Sie Ihrem Spring Boot-Projekt pom.xml die folgenden Abhängigkeiten hinzu

Bild.png

Starten Sie die App neu und Sie können loslegen.

Wenn Sie Seiten automatisch laden möchten, werfen Sie einen Blick auf FiveReload.

Während meiner Tests habe ich die LiveReload-Schwachstelle gefunden. Wenn Sie sie während des Tests gefunden haben, teilen Sie uns dies bitte mit.

58. Was ist ein eingebetteter Server? Warum sollten wir einen eingebetteten Server verwenden?

Denken Sie darüber nach, was erforderlich ist, um eine Anwendung auf Ihrer virtuellen Maschine bereitzustellen. Schritt 1: Installieren Sie Java

Der zweite Teil: Installieren Sie den Web- oder Anwendungsserver (Tomat/Wbesphere/Weblogic usw.) Der dritte Teil: Bereitstellen des Anwendungswar-Pakets

Wenn wir diese Schritte vereinfachen wollen, wie sollten wir das tun?

Lassen Sie uns darüber nachdenken, wie Sie den Server zu einem Teil der Anwendung machen können.

Sie brauchen nur eine virtuelle Maschine mit installiertem Java und können Anwendungen direkt darauf bereitstellen, ist das nicht cool?

Diese Idee ist der Ursprung von eingebetteten Servern.

Wenn wir eine bereitstellbare Anwendung erstellen, werden wir einen Server (z. B. Tomcat) in den bereitstellbaren Server einbetten.

Beispielsweise können Sie für eine Spring Boot-Anwendung ein Anwendungs-JAR generieren, das Embedded Tomcat enthält. Sie können die Webanwendung wie eine normale Java-Anwendung ausführen.

Bei einem eingebetteten Server enthält unsere ausführbare Einheit die Binärdateien des Servers (z. B. tomcat.jar).

59. Wie füge ich allgemeinen JS-Code in Spring Boot hinzu?

Erstellen Sie unter dem Quellordner einen Ordner namens static. Dann können Sie Ihren statischen Inhalt dort einfügen. Der Pfad zu „myapp.js“ lautet beispielsweise „resources\static\js\myapp.js“.

Sie können sich auf die Verwendung in jsp beziehen

<csriptsrc="/js/myapp.js">

错误:Der HAL-Browser gibt mir einen nicht autorisierten Fehler – Für den Zugriff auf diese Ressource ist eine vollständige Authentifizierung erforderlich.

Wie kann dieser Fehler behoben werden?

Bild.png

Zwei Methoden:

Methode 1: Deaktivieren Sie die Sicherheitsüberprüfung

application.properties

management.security.enabled:FALSE

Methode 2: Durchsuchen Sie das Protokoll nach dem Kennwort und übergeben Sie es im Anforderungsheader

60. Was ist Spring Date?

Die Mission von Spring Data besteht darin, ein vertrautes, konsistentes, Spring-basiertes Programmiermodell für den Datenzugriff bereitzustellen und gleichzeitig die Spezifität des zugrunde liegenden Datenspeichers beizubehalten. Dies erleichtert die Verwendung von Datenzugriffstechnologien, relationalen und nicht relationalen Datenbanken, Map-Reduce-Frameworks und Cloud-basierten Datendiensten.

Um es etwas einfacher zu machen, bietet Spring Data die Abstractions-Schnittstelle, die nicht durch die zugrunde liegende Datenquelle beschränkt ist. Hier ist ein Beispiel

interfaceTodoRepositoryextendsCrudRepository<Todo,Long>{

61. Was ist Spring Data REST?

Spring Data TEST kann verwendet werden, um HATEOAS RESTful-Ressourcen in Spring Database zu veröffentlichen. Hier ist ein Beispiel mit JPA

@RepositoryRestResource(collectionResourceRel=“todos“,path=“todos“)
publicinterfaceTodoRepository
extendPagingAndSortingRepository<Todo,Long>{

Ohne zu viel Code zu schreiben, können wir eine RESTful-API in der Spring-Datenbank veröffentlichen. Unten sehen Sie einige Beispiele für TEST-Server

POST

URL:http://localhost:8080/todosUse Header:Content-Type:Type:application/jsonRequest Content

Code zeigen wie unten

Bild.png

Antwort Inhalt

Bild.png

Die Antwort enthält die href der neu erstellten Ressource.

62. Wie funktioniert path=“users“, collectionResourceRel=“users“ mit Spring Data Rest?

Bild.png

path – Das Pfadsegment, das für diese Ressource exportiert werden soll.

collectionResourceRel – Der rel-Wert, der beim Generieren von Links zu Sammlungsressourcen verwendet werden soll. Wird beim Generieren von HATEOAS-Links verwendet.

63. Was passiert im Hintergrund, wenn eine Spring Boot-Anwendung als Java-Anwendung ausgeführt wird?

Wenn Sie die Eclipse-IDE verwenden, stellt das Eclipse-Maven-Plugin sicher, dass sobald Änderungen an Abhängigkeiten oder Klassendateien hinzugefügt werden, diese kompiliert und in der Zieldatei bereit sind! Danach ist es dasselbe wie bei jeder anderen Java-Anwendung.

Wenn Sie die Java-Anwendung starten, wird die Spring Boot-Autokonfigurationsdatei auf magische Weise aktiviert.

Wenn die Spring Boot-Anwendung erkennt, dass Sie eine Webanwendung entwickeln, startet sie Tomcat.

64. Können wir im Spring-Boot-Starter-Web Tomcat durch Jetty ersetzen?

Entfernen Sie vorhandene Abhängigkeiten in spring-boot-starter-web und fügen Sie Folgendes hinzu.

Bild.png

Bild.png

65. Wie generiert man eine WAR-Datei mit Spring Boot?

Literatur-Empfehlungen:

Der folgende Link führt direkt zur Federdokumentation:

66. Wie kann ich mit Spring Boot auf verschiedenen Servern bereitstellen?

Sie müssen die folgenden zwei Schritte ausführen:

Generieren Sie eine WAR-Datei in einem Projekt.

Stellen Sie es auf Ihrem bevorzugten Server bereit (Websphere oder Weblogic oder Tomcat und so weiter).

Schritt 1: Dieser Einstiegsleitfaden soll helfen:

Schritt 2: Hängt von Ihrem Server ab.

67. Wo ist der Unterschied zwischen RequestMapping und GetMapping?

RequestMapping hat Klassenattribute und kann GET, POST, PUT oder andere Anfragemethoden in der Annotation ausführen.

GetMapping ist ein Sonderfall der GET-Request-Methode. Es ist nur eine Erweiterung von ResquestMapping zur Verdeutlichung.

68. Warum empfehlen wir nicht, Spring Data Rest in echten Anwendungen zu verwenden?

Wir denken, dass Spring Data Rest großartig für Rapid Prototyping ist! Bei großen Anwendungen mit Vorsicht verwenden. Mit Spring Data REST können Sie Ihre Datenentitäten direkt als RESTful-Services veröffentlichen.

Wenn Sie einen RESTful-Server entwerfen, schreiben Best Practices vor, dass Ihre Schnittstelle zwei wichtige Dinge berücksichtigen sollte:

Ihre Modellpalette. dein Kunde.

Mit Spring Data REST müssen Sie sich über diese beiden Aspekte keine Gedanken mehr machen, Sie müssen die Entität nur noch als TEST-Dienst veröffentlichen.

Aus diesem Grund empfehlen wir, Spring Data Rest zusätzlich zum Rapid Prototyping oder als erste Lösung für ein Projekt zu verwenden. Dies ist keine gute Note für ein vollständiges Evolutionsprojekt.

69. Wie ändere ich den Paketnamen eines Projekts in Spring Initializer?

Die gute Nachricht ist, dass Sie es anpassen können. Klicken Sie auf den Link "Zur Vollversion". Sie können den Paketnamen konfigurieren, den Sie ändern möchten!

70. Wo finde ich die vollständige Liste der Eigenschaften, die in application.propertierde konfiguriert werden können?

Hier ist die komplette Anleitung:

71. Was sind die Unterschiede zwischen JPA und Hibernate?

Zusamenfassend

JPA ist eine Spezifikation oder Schnittstelle Hibernate ist eine Implementierung von JPA

Wenn wir JPA verwenden, müssen wir das Hibernate-Importpaket nicht verwenden, wenn wir die Anmerkungen und Schnittstellen im javax.persistence-Paket verwenden.

Wir empfehlen die Verwendung von JPA-Annotationen, da wir sie nicht als Implementierung an Hibernate binden. Später (ich weiß - weniger als ein Prozent Wahrscheinlichkeit) können wir eine andere JPA-Implementierung verwenden.

72. Welche Abhängigkeiten sind erforderlich, um eine JPA-Anwendung zu starten, die mit Spring Boot mit der In-Memory-Datenbank H2 verbunden ist?

In einem Spring Boot-Projekt können Sie die H2-Konsole laden, wenn Sie sicherstellen, dass die folgenden Abhängigkeiten alle im Klassenpfad enthalten sind.

Web-Launcher

h2

Andere Abhängigkeiten des jpa data enabler sind wie folgt:

Bild.png

Einige Punkte zu beachten:

Ein interner Datenspeicher existiert nur während der Anwendungsausführung. Dies ist eine effiziente Methode, um das Framework zu lernen. Es ist nicht so, wie Sie es sich für die Anwendung in der realen Welt wünschen.

In der Frage „Wie verbinde ich mich mit einer externen Datenbank?“ haben wir erklärt, wie Sie sich mit einer Datenbank Ihrer Wahl verbinden können.

73. Wie wähle ich Hibernate als Standardimplementierung von JPA ohne Konfiguration?

Weil Spring Boot automatisch konfiguriert wird. Unten sind die Abhängigkeiten, die wir hinzugefügt haben

  org.springframework.boot spring-boot-starter-data-jpa

spring-boot-stater-data-jpa hat Übergangsabhängigkeiten für Hibernate und JPA.

Wenn Spring Boot Hibernate im Klassenpfad erkennt, wird es automatisch als Standard-JPA-Implementierung konfiguriert.

74. Wo sind die angegebenen Datenbankverbindungsinformationen? Woher weiß es, dass es sich automatisch mit H2 verbinden soll?

Das ist die Magie der automatischen Konfiguration von Spring Boot.

Aus:

Die automatische Spring Boot-Konfiguration versucht, Ihre Spring-Anwendung basierend auf den von Ihnen hinzugefügten JAR-Abhängigkeiten automatisch zu konfigurieren. Wenn beispielsweise HSQLDBis in Ihrem Klassenpfad vorhanden ist und die Datenbankverbindungs-Bean nicht manuell konfiguriert wurde, können wir automatisch eine In-Memory-Datenbank konfigurieren.

Weiterlesen:

75. Wie stellen wir eine Verbindung zu einer externen Datenbank wie MSSQL oder Orcale her?

Betrachten wir dies am Beispiel von MySQL:

Schritt 1 – Hinzufügen von MySQL-Connector-Abhängigkeiten zu pom.xml

Bild.png

Schritt 2 – Entfernen Sie die Abhängigkeiten von H2 aus pom.xml

Oder machen Sie es zumindest zum Umfang des Tests.

Bild.png

Schritt 3 – Installieren Sie Ihre MySQL-Datenbank

Schritt 4 – Konfigurieren Sie Ihre MySQL-Datenbankverbindung

Konfigurieren Sie application.properties

Bild.png

Schritt 5 - Starten Sie neu und Sie können loslegen!

So einfach ist das!

76. Wie lautet der Name der von Spring Boot konfigurierten Standard-H2-Datenbank? Warum ist der Standarddatenbankname testdb?

In application.properties sind alle Standardwerte aufgelistet

Finden Sie die Eigenschaften unten

spring.datasource.name=testdb#NamederDatenquelle.

Wenn Sie die interne H2-Speicherdatenbank verwenden, definiert sie den Namen, den Spring Boot verwendet, um Ihre H2-Datenbank zu installieren.

77. Wenn H2 nicht im Klassenpfad ist, wird die obige Situation auftreten?

wird folgenden Fehler melden

Die Klasse des eingebetteten Datenbanktreibers für den Datenbanktyp NONE kann nicht bestimmt werden

Fügen Sie H2 zu pom.xml hinzu und starten Sie Ihren Server neu

[Externer Link Bildübertragung fehlgeschlagen, die Quellseite verfügt möglicherweise über einen Anti-Leech-Mechanismus, es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-LE3rHXvv-1660643940589) (https://upload-images.jianshu.io/upload_images /28366454-b2e1b47b75680772.png ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

78. Können Sie ein Beispiel für die Verwendung von ReadOnly als Transaktionsverwaltung geben?

Wenn Sie Inhalte aus der Datenbank lesen, möchten Sie die Benutzerbeschreibung oder eine andere Beschreibung in der Transaktion in den schreibgeschützten Modus versetzen, damit Hebernate die Entität nicht erneut auf Änderungen überprüfen muss. Das ist sehr effizient.

79. Was ist der beste Weg, benutzerdefinierte Konfigurationen für Spring Boot-Benutzeranwendungen zu veröffentlichen?

Das Problem mit @Value ist, dass Sie Ihren Konfigurationswert über die Anwendung zuweisen können. Ein besserer Betrieb ist ein zentralisierter Ansatz. Sie können eine Konfigurationskomponente mit @ConfigurationProperties definieren.

Bild.png

Sie können Parameter in application.properties konfigurieren.

Bild.png

80. Was sind die Anforderungen an Konfigurationsdateien?

Die Entwicklung von Unternehmensanwendungen ist komplex und Sie benötigen eine Mischung aus Umgebungen:

Entwickler

Qualitätssicherung

Bühnenproduktion

In jeder Umgebung möchten Sie unterschiedliche Anwendungskonfigurationen.

Konfigurationsdateien erleichtern unterschiedliche Anwendungskonfigurationen in unterschiedlichen Umgebungen.

Spring und Spring Boot bieten Funktionen, die Sie angeben können.

Was sind die Konfigurationen verschiedener Umgebungen in verschiedenen Konfigurationsdateien? Legt das aktive Profil für eine bestimmte Umgebung fest.

Spring Boot wählt die Konfiguration der Anwendung basierend auf dem aktiven Profilsatz in der jeweiligen Umgebung aus.

81. Wie verwende ich die Konfigurationsdatei, um die Konfiguration einer bestimmten Umgebung über Spring Boot zu konfigurieren?

Die Konfigurationsdatei ist nicht der Schlüssel zum Einstellen der Umgebung.

Im folgenden Beispiel verwenden wir zwei Konfigurationsdateien

Entwickler

Die Standardanwendungskonfiguration befindet sich in application.properties. Sehen wir uns das folgende Beispiel an: application.properties

Bild.png

Wir möchten die Eigenschaft application.properties für die dev-Datei anpassen. Wir müssen eine Datei namens
application-dev.properties erstellen und die Eigenschaften überschreiben, die wir anpassen möchten.

Anwendungsentwicklungseigenschaften

basic.message: Dynamische Nachricht in DEV

Nachdem Sie das Profil speziell konfiguriert haben, müssen Sie ein aktives Profil in der Umgebung festlegen. Dazu gibt es mehrere Möglichkeiten:

Verwenden Sie Dspring.profiles.active=prod in den VM-Parametern

Verwenden Sie spring.profiles.active=prod in application.properties

82. Wie richten wir eine Spring Boot-Anwendung mit Maven ein?

Wir können Spring Boot wie jede andere Bibliothek in ein Maven-Projekt einbinden. Der beste Weg ist jedoch,
vom spring-boot-starter-parent-Projekt zu erben und eine Abhängigkeit vom Spring Boot-Starter zu deklarieren. Dadurch kann unser Projekt die Standardeinstellungen von Spring Boot wiederverwenden. Das Vererben des spring-boot-starter-parent-Projekts ist sehr einfach – wir müssen nur ein übergeordnetes Element in pom.xml angeben:

Bild.png

Wir finden die neueste Version von
spring-boot-starter-parent im zentralen Maven-Repository. Die obige Methode ist sehr bequem, entspricht aber nicht unbedingt den tatsächlichen Anforderungen. Beispielsweise verlangt das Unternehmen, dass alle Projektabhängigkeiten aus einer Standardstückliste erstellt werden, wir können dies nicht auf die oben beschriebene Weise tun. In diesem Fall können wir wie folgt referenzieren:

Bild.png

Der in diesem Artikel erläuterte Inhalt ist die Java-Interviewserie: Spring Boot-Interviewfragen (82 vollständige Analyse)

Bild.png

Bild.png

Ich denke du magst

Origin blog.csdn.net/m0_54850604/article/details/126371568
Empfohlen
Rangfolge