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的注册