SpringBoot 使用注解向容器中注册Bean的方法总结

1、使用组件注解

如果使用组件注解需要搭配@ComponentScan,该注解会指定需要扫描的包,扫描以后,路径内所有带有组件注解的类都将被注册进IOC容器当中

@Component:定义一个Bean

以下几个注解功能都和@Component相同,一般用于特定位置,便于区分。

@Controller/RestController:定义一个Bean,用于标识控制器,其中@RestController包含了@ResponseBody注解,用于Rest风格接口的开发

2、使用@Bean、@Configuration注解

先使用@Configuration将一个类指定为配置类,在配置类中使用@Bean进行定义

运行时,该配置类,和类中的Bean都会被注入到容器中

  @Bean("Test1")
    public Test1 Test1(){
        return new Test1();
    }

直接返回需要注入的Bean对象实例即可,也可以省略Bean后面的参数,此时会以方法名作为Bean的标识

3、使用@Import注解

SpringBoot的@Import注解可以用于为容器中注册Bean

有三种使用方法:

1、直接Import某个类,将这个类添加到IOC容器中

@Import( { A.class,B.class } )

2、导入实现了@ImportSelector接口的实现类

如果想根据某些属性进行判断是否导入某个Bean,则可以在@Import中传入实现了@ImportSelector的实现类

在执行时,@Import如果判断出传入的是实现了@ImportSelecor接口的实现类,就会调用该类中的selectImport方法,判断需要导入的configuration

3、导入实现了@ImportBeanDefinitionRegistrar接口的实现类

在执行时,会调用该类中的registerBeanDefinitions方法,通过参数中的BeanDefinitionRegistry可以进行Bean的注册

posted @ 2020-04-17 13:11  ELAIRS  阅读(3093)  评论(0编辑  收藏  举报