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