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
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. –
für jetzt .. Ich würde gerne über Autokonfiguration in Bezug auf Datenbank-Konfiguration nur wissen ... (entsprechend umformulieren) – dhroove
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. –