首先我們應該知道的是annotation其實是一種interface,它是利用JAVA反射機制提供的API來訪問Annotation相關信息,JAVA語言解釋器在運行時會忽略這些註釋。
@Autowired,進行依賴注入。那在AutowiredAnnotationBeanPostProcessor這個類中初始化方法會將autowired註釋加入到需要自動掃描的set集合中。AutowiredAnnotationBeanPostProcessor當中有個postProcessMergedBeanDefinition方法,用來對當前Bean的定義進行修改,這裏主要通過findAutowiringMetadata方法找到當前Bean中標註@Autowired註解的屬性變量和方法。創建Bean的過程中會調用InjectionMetadata的inject方法通過JAVA反射來注入@Autowired註解的屬性變量和方法。