随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

作用:

1、注册多个

2、字符串必须是类的完整类型限定名(包.类名)

 

创建一个实现类:

package cn.cdulm.bean;

import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;

@Component
public class MyImportSelector implements ImportSelector { @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { return new String[]{}; } }

实现selectImports()方法,可以发现返回值是一个字符串数组;

创建一个Wife类(),类中除了给name赋值外不做任何操作:

package cn.cdulm.bean;

import org.springframework.beans.factory.annotation.Value;

public class Wife {
    @Value("老王吧")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

传入Wife的类型限定名:

 

 

测试方法(此时不能通过类名字获取实例):

 

 输出结果:

Wife - cn.cdulm.bean.Wife@5b12b668
Wife - 老王吧

发现成功输出,Wife类中没有使用@Component注入为Bean,也没有在javaConfig中配置注入Wife类为Bean,只在MyImportSelector类中传入了Wife的类型限定名,就成功将Wife在ioc容器中注册为Bean。

 

posted on 2022-05-31 11:00  时间完全不够用啊  阅读(158)  评论(0编辑  收藏  举报