Я уже некоторое время использую Spring, но мне всегда было интересно, как он работает, более конкретно, как они загружают и ткают бины / классы, помеченные только интерфейсом или @ annotation .
Для объявлений xml легко увидеть, как Spring обрабатывает мои bean-компоненты (они объявлены в контексте xml, который читает Spring), но для классов, помеченных только аннотациями, я не вижу, как это работает, так как я не передавайте никаких агентов в JVM или около того.
Я полагаю, что есть некоторая ловушка Java / JVM, которая позволяет вам предварительно обрабатывать классы по какому-то критерию, но я ничего не смог найти в документации.
Может кто-нибудь указать мне на некоторые документы? Это связано с java.lang.instrument.ClassFileTransformer API?