2017-03-02 20 views
0

Ich verstehe nicht, wie die Verknüpfung SpringBootApplication funktioniert. Insbesondere verstehe ich nicht, wie die einzelnen Sub-Annotationen wie @ComponentScan und @EnableAutoConfiguration an die eigentliche Anwendungsklasse übergeben werden, als ob sie explizit dort geschrieben wären. Ich habe die Quellcode-Basis von Spring Boot für SpringBootApplication gesucht und erwartet, dass Code angezeigt wird, der nach der Zeichenfolge "SpringBootApplication" sucht, bevor er diese einzelnen Anmerkungen anwendet, aber keine sieht. Kann jemand das erklären? Vielen Dank.Wie funktioniert @SpringBootApplication tatsächlich im Spring Boot?

+0

Siehe auch http://stackoverflow.com/questions/18189980/how-do-annotations-work-internally/18202623#18202623 – chrylis

+0

Danke, Chrylis. Ich suche jetzt im Frühjahr nach dem Code, der die Anmerkungen oben auf der Anmerkung nachschlägt und die Verarbeitung durchführt. –

+0

Möglicherweise suchen Sie nach den verschiedenen Annotation Postprozessoren. – chrylis

Antwort

2

Die Annotation @SpringBootApplication ist eine Annotation, die ua mit den von Ihnen erwähnten Annotationen @ComponentScan und @EnableAutoConfiguration versehen ist. Anstatt nach @SpringBootApplication zu scannen, sucht Spring intern nach diesen (impliziten) Annotationen und tut dies entsprechend.

+0

Ich sehe. Können Sie mich auf den Code verweisen, der nach diesen impliziten Anmerkungen sucht? Ich bin neugierig. Vielen Dank. –

+0

Oder irgendeine Dokumentation dazu? –

0

http://www.journaldev.com/7989/key-components-and-internals-of-spring-boot-framework

Und auch Frühling Stiefel reduziert die Definition von Annotation-Konfiguration. Wenn wir die Annotation @SpringBootApplication auf Klassenebene verwenden, fügt Spring Boot AutoConfigurator automatisch alle erforderlichen Annotationen dem Java Class ByteCode hinzu.

==> eigentlich kann ich nicht den Code in Spring Boot-Autokonfig finden, die dies tut.

Verwandte Themen