Klassen-Namen und Felder in einem Spring Projekt auslesen

Spring bietet eine Reihe nützlicher Zubehör-Klassen um mit dem Framework zu arbeiten. Unter anderem ist es auch möglich, die in einem Projekt definierten Java-Klassen auszulesen und diverse Informationen darüber zu erhalten. Zum Beispiel könnte man damit alle Felder eines bestimmten Typs und einer bestimmten Annotation aus den im Projekt definierten Entities erhalten und mit diesen Informationen einen Daten-Export programmieren.

Möglich macht dies die Klasse ClassPathScanningCandidateComponentProvider.

Hier ein Beispiel:

Mit diesem Beispiel erhält man schon einige nützliche Informationen über die definierten Klassen und kann damit arbeiten. Obwohl der Name BeanDefinition vermuten ließe, dass man nur Informationen über Java Beans erhält, ist es jedoch für alle in dem Projekt definierten Klassen möglich.