zoukankan      html  css  js  c++  java
  • Import注解

    @Import的参数是一个class类型的数组

    @Import(Cat.class)//可以把一个类当做一个Bean注入到Spring中
    @Import(CatConfiguration.class)//可以把一个配置类注入到spring中
    public class Cat {
    
        public void  miaomiao(){
            System.out.println("miaomiao");
        }
    }
    @Configuration
    public class CatConfiguration {
    
    
        @Bean
        public Cat cat() {
            return new Cat();
        }
    }

    可以看出,@Import注解可以把一个普通的类转换成一个bean,添加到spring容器中.

    也可以把一个配置类添加到spring的容器中,但是配置类本来就会被添加spring容器中啊

    如果@Import()中天机的是一个实现了ImportSelector接口类,那么就会把返回的全类名的数组都添加到spring容器中.

    @Import(DogSelector.class)//可以DogSelector中返回的全类名数组都加入到spring中管理
    public class DogSelector implements ImportSelector {
        @Override
        public String[] selectImports(AnnotationMetadata importingClassMetadata) {
            return new String[]{"com.mccloud.mccloudtest.conf.Dog","xxx.xxx.xxx.xxx",...};//可以把这里返回的类都加到sprin管理起来
        }
    }

    //BeanDefinitionRegistrat注册进来

    @Import(DuckBeanDefinitionRegistrat.class)//可以把一个BeanDefinitionRegistrat注册进来
    public class DuckBeanDefinitionRegistrat implements ImportBeanDefinitionRegistrar {
        @Override
        public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
            BeanDefinition beanDefinition = new RootBeanDefinition(Duck.class);
            registry.registerBeanDefinition("Duck", beanDefinition);
        }
    }
    public class Duck {
    
        public void gaga(){
            System.out.println("gaga");
        }
    }
  • 相关阅读:
    python的logging模块
    python的random模块
    python3中time模块的用法及说明
    浅谈python模块的导入操作
    python3中,os.path模块下常用的用法总结
    OS模块的常用内置方法
    认识python中的set集合及其用法
    初识Python装饰器
    CentOS的软件包的管理之rpm和yum
    python中的函数对象与闭包函数
  • 原文地址:https://www.cnblogs.com/songfahzun/p/11792410.html
Copyright © 2011-2022 走看看