1. 程式人生 > 其它 >spring原始碼閱讀(五)-Spring Import註解使用

spring原始碼閱讀(五)-Spring Import註解使用

說明

我們再讀原始碼時常常發現這個註解,近期在讀dubbo原始碼 就使用到了此註解,究竟有什麼用,在spring boot專案中尤其多

Import的作用

實現將打了@Import的註解注入到容器,以及@Import指定的類注入到容器

import的三種使用方式

直接注入指定類的方式

1.定義一個打上了Import的類

/**
 * student和BeanRegisterConfig都會初始化進入容器 student的beanName為類的全名稱
 */
@Import({Student.class})
public class BeanRegisterConfig  {
}

2.main測試

public static void main(String[] args) {
        AnnotationConfigApplicationContext applicationContext=new AnnotationConfigApplicationContext(BeanRegisterConfig.class);  //這裡的引數代表要做操作的類
        String [] names=applicationContext.getBeanDefinitionNames();
        for (String name:
        names) {
            System.out.println(name);
        }
    }

3.輸出

匯入ImportSelector

1.定義一個ImportSelector類

public class BeanRegisterImportSelector implements ImportSelector {

    /**
     *
     * @param importingClassMetadata 註解元資料
     * @return 返回值為要初始化的類的全名稱
     */
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        
for (String typeName : importingClassMetadata.getAnnotationTypes()) { System.out.println("typeName" + typeName); } //告訴容器初始化importtest.bean.Student return new String[]{"importtest.bean.Student"}; } }

1.定義一個打上了Import的類