Spring——组件注册方法总结

1、通过配置类的包扫描

给配置类添加@ComponentScan,通过value指定要扫描的包+给组件标注注解(@Component ,@Service或 @Controller等等)

 

2、通过@Bean在配置类中加入组件

特点:使用第三方组件时可以不用更改第三方代码。

 

3、@Import

1)在配置类中使用@Import可以直接导入组件,容器会自动注册,id默认全类名

2)ImportSelect:实现这个接口,通过接口提供的selectImports方法返回并注册全类名数组中的类,再给容器中注册ImportSelect接口实现类即可

3)ImportBeanDefinitionRegistrar:实现这个接口,通过接口中的registerBeanDefinitions方法注册类并可自定义类名,最后给容器中注册ImportBeanDefinitionRegistrar接口实现类

 

4、实现FactoryBean接口

实现以下三个方法,最后给容器中注册FactoryBean接口实现类

T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();



 


 上面是源码中的注释,举个例子:

容器中注册进FactoryBean接口实现类后,获取它并getclass,得出的并不会是实现类,而是返回下图中的T泛型。即bean的名字是XXXFactoryBean(实现类的名字),但实际是我们自定义工厂所管理的类。

 

 



 

posted @ 2020-02-19 23:02  就像空中月  阅读(...)  评论(...编辑  收藏