Spring注解驱动开发——组件注册 @Import-使用ImportBeanDefinitionRegistrar

实现类

复制代码
package com.mongoubiubiu.condition;

import org.springframework.beans.factory.support.BeanDefinitionDefaults;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

import com.mongoubiubiu.bean.RainBow;

public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar{

    /**
     * AnnotationMetadata: 当前类的注解信息
     * BeanDefinitionRegistry:BeanDefinition的注册类
     */
    @Override
    public void registerBeanDefinitions(AnnotationMetadata arg0, BeanDefinitionRegistry registry) {

        boolean redExit =    registry.containsBeanDefinition("com.mongoubiubiu.bean.Red");
        boolean blueExit =    registry.containsBeanDefinition("com.mongoubiubiu.bean.Yellow");
        
        if(redExit && blueExit){
            RootBeanDefinition rootBeanDefinition   =    new RootBeanDefinition(RainBow.class);
            //指定bean名
            registry.registerBeanDefinition("RainBow", rootBeanDefinition);
        }


    }

}
复制代码

Import 导入 ImportBeanDefinitionRegistrar

 

 测试:发现确实被注入进来了

 

本文作者:KwFruit

本文链接:https://www.cnblogs.com/mangoubiubiu/p/15063699.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   KwFruit  阅读(48)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起