zoukankan      html  css  js  c++  java
  • 注解-组件注册04-@Import

      目前注册组件的方式有:

    注册组件:
    1)包扫描+组件标注注解(@Controller @Service @Repository @Component)
    2)@Bean[导入的第三方包里的组件]

       下面来说第三种方式@Import:

    @Import[快速给容器中导入一个组件]
    1)@Import(要导入到容器中的组件),容器中就会自动注册这个组件,id默认是全类名
    2)ImportSelector:返回需要导入的组建的全类名数组
    3)ImportBeanDefinitionRegistrar:手动注册bean到容器中
    @Configuration
    //Red Color Blue Yellow RainBow均为被注解修饰 @Import({ Red.
    class, MyImportSelector.class, MyImportBeanRegister.class}) public class MainConfig2 { /** * 注册组件: * 1)包扫描+组件标注注解(@Controller @Service @Repository @Component) * 2)@Bean[导入的第三方包里的组件] * 3)@Import[快速给容器中导入一个组件] * 1)@Import(要导入到容器中的组件),容器中就会自动注册这个组件,id默认是全类名 * 2)ImportSelector:返回需要导入的组建的全类名数组 * 3)ImportBeanDefinitionRegistrar:手动注册bean到容器中 */ }
    public class MyImportSelector implements ImportSelector {
        //返回值就是导入到容器中的组件类全类名
        //AnnotationMetadata:当前标注@Import注解的类的所有注解信息
        @Override
        public String[] selectImports(AnnotationMetadata annotationMetadata) {
            return new String[]{"Yellow","Blue"};
        }
    }
    public class MyImportBeanRegister implements ImportBeanDefinitionRegistrar {
        /**
         * @param annotationMetadata 当前类的注解信息
         * @param registry BeanDefinition注册类,把所有需要添加到容器中的bean,
         *                               调用BeanDefinitionRegistry.registerBeanDefinition()手工注册进来
         */
        @Override
        public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry registry) {
            boolean red = registry.containsBeanDefinition("Red");
            boolean blue = registry.containsBeanDefinition("Blue");
            if(red && blue){
                RootBeanDefinition beanDefinition = new RootBeanDefinition(RainBow.class);
                registry.registerBeanDefinition("rainBow",beanDefinition);
            }
        }
    }
  • 相关阅读:
    asp.net实现页面跳转后不可以返回
    Response.Write的alert换行问题
    ASP.NET 中关GridView里加入CheckBox 在后台获取不到选中状态的问题
    将Windows网络适配器共享网络的ip:192.168.137.1 改为其他IP
    windows设置照片查看器为默认的照片查看软件
    Android--UI之ImageView
    Android--UI之DatePicker、TimePicker...
    Android--UI之ProgressBar
    Android--UI之Radio、Check、Toggle
    Android--UI之Button
  • 原文地址:https://www.cnblogs.com/qmillet/p/13084065.html
Copyright © 2011-2022 走看看