@AutoConfigurationPackage註解

查看@AutoConfigurationPackage註解內部源碼信息,核心代碼具體以下: ```java @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @Import({Registrar.class}) // 導入Registrar中註冊的組件 public @interface AutoConfigurationPackage { } ``` 從上述源碼能夠看出,@AutoConfigurationPackage註解的功能是由@Import註解實現的,它是spring框架的底層註解,它的做用就是給容器中導入某個組件類,例如@Import(AutoConfigurationPackages.Registrar.class),它就是將Registrar這個組件類導入到容器中,可查看Registrar類中registerBeanDefinitions方法,這個方法就是導入組件類的具體實現 : ![image-20191226122946037](./images/image-20191226122946037.png) 從上述源碼能夠看出,在Registrar類中有一個registerBeanDefinitions()方法,使用Debug模式啓動項目, 能夠看到選中的部分就是com.lagou。也就是說,@AutoConfigurationPackage註解的主要做用就是將主程序類所在包及全部子包下的組件到掃描到spring容器中。 所以 在定義項目包結構時,要求定義的包結構很是規範,項目主程序啓動類要定義在最外層的根目錄位置,而後在根目錄位置內部創建子包和類進行業務開發,這樣纔可以保證定義的類可以被組件掃描器掃描 這些內容,是從拉勾教育的《Java工程師高薪訓練營》裏學到的,課程內容很是全面,還有拉勾的內推大廠服務,推薦你也看看。
相關文章
相關標籤/搜索