栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

往Spring容器中注册组件的方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

往Spring容器中注册组件的方式

给容器中注册组件的方式
  1. 包扫描+标注注解(@Controller/@Service/@Repository/@Component)一般用于自己写的类
  2. @Configuration+@Bean,一般用于导入的第三方包里面的组件
  3. @Import,一般用于封装公共组件,提供jar包
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Import {

	
	Class[] value();

}
  • @Import(组件);容器中就会自动注册这个组件,id默认是全类名,如果导入的是@Configuration,没那么其类中的@Bean也会全部被导入
  • @Import(ImportSelector或者DeferredImportSelector):返回需要导入的组件的全类名数组;
public interface ImportSelector {

	
	String[] selectImports(AnnotationMetadata importingClassMetadata);

}

AnnotationMetadata可以获取到标注这个注解的类的相关信息,返回值不可为null,是导入类的全类名。
ImportSelector的实现类可以实现EnvironmentAware、BeanFactoryAware、BeanClassLoaderAware、ResourceLoaderAware接口获取相关的环境信息。

  • @Import(BeanDefinitionRegistrar):手动注册bean到容器中
public interface ImportBeanDefinitionRegistrar {

	
	public void registerBeanDefinitions(
			AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry);

}

AnnotationMetadata可以获取到标注这个注解的类的相关信息,通过BeanDefinitionRegistry手动注册组件。
ImportBeanDefinitionRegistrar的实现类可以实现EnvironmentAware、BeanFactoryAware、BeanClassLoaderAware、ResourceLoaderAware接口获取相关的环境信息。
5. 使用Spring提供的 FactoryBean,非常适合整合其他框架;
- 默认获取到的是工厂bean调用getObject创建的对象
- 要获取工厂Bean本身,我们需要给id前面加一个&
6. 直接注册一个Bean:SingletonBeanRegistry#registerSingleton

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号