2016-09-06 2 views
1

Aus der Dokumentation:Frühlings-Boot-Auto-Konfiguration

Frühlings-Boot-Auto-Konfiguration versucht automatisch Ihre Spring-Anwendung zu konfigurieren, basierend auf den JAR-Abhängigkeiten, die Sie haben hinzugefügt. Wenn sich HSQLDB beispielsweise in Ihrem Klassenpfad befindet und Sie keine Datenbankverbindungs-Beans manuell konfiguriert haben, wird eine In-Memory-Datenbank automatisch konfiguriert.

Was genau ist hier (in Bezug auf die Datenbankkonfiguration) automatisch konfiguriert? Und wie funktioniert diese Springboot-Autokonfiguration?

+2

Wie es aussieht, ist diese Frage wirklich, _really_ breit. Wenn es etwas Bestimmtes gibt, das du zu verstehen versuchst, formuliere bitte die Frage, um es aufzunehmen. –

+0

für jetzt .. Ich würde gerne über Autokonfiguration in Bezug auf Datenbank-Konfiguration nur wissen ... (entsprechend umformulieren) – dhroove

+0

Ich würde empfehlen, einige der Frühjahr.io beginnen Führer, um mehr Vertrautheit mit den Dingen zu bekommen, bevor eine solche Frage breite Frage. Der Großteil von Spring Boot basiert auf dem Spring-Framework selbst. Das müssen Sie zuerst verstehen, um die Autokonfiguration (Datenquellen, Verbindungspools usw.) zu verstehen. –

Antwort

3

Liste der AutoConfigurations

Sie finden die Liste der automatischen Konfiguration Klassen =>here (es gibt mehr als hundert, so dass ich nicht die Liste einfügen) finden. Die meisten von ihnen (wenn nicht alle) werden ausgelöst @Conditionally, wenn bestimmte Klassen im Klassenpfad gefunden werden und/oder einige Beans definiert sind.

HibernateJpaAutoConfiguration

Wenn ich HibernateJpaAutoConfiguration zum Beispiel nehmen. Ohne sie würden Sie normalerweise eine Klasse erstellen, um folgendes zu definieren:

  • @Bean DataSource;
  • @Bean EntityManager;
  • @Bean transactionManager;
  • wahrscheinlich einige Winterschlaf-Eigenschaften.
  • Mit HibernateJpaAutoConfiguration, keine Notwendigkeit, diese zu definieren, kümmert sich spring-boot kümmert es für Sie. Es versucht sogar festzustellen, ob die Datenbankverbindung in Ihrer application.properties für die eingebettete Datenbank gilt, und startet sie, und konfiguriert die Hibernate-Eigenschaften entsprechend.

    spring.factories

    Spring-Boot lädt die AutoConfigurations in META-INF/spring.factories definiert (in spring-boot-autoconfigure jar). Sie können auch Ihre eigenen AutoConfiguration-Klassen in einer benutzerdefinierten spring.factories-Datei definieren. Es könnte nützlich sein, wenn Sie dieselben Beans in mehreren Projekten auf ähnliche Weise konfigurieren (das habe ich noch nie gemacht!).

    Recap

    Zum größten Teil, ein *-AutoConfiguration einfach einrichtet @Beans, die Sie sonst der Einrichtung selbst in einer @Configuration Klasse brauchen würden. Mit anderen Worten, AutoConfiguration bündelt einen Satz von @Conditional @Beans. Es tut es nach bestem Wissen, aber Sie können sie mit Ihren eigenen überschreiben, wenn Sie es wünschen.

    Zusätzliche Informationen