美文网首页
IoC:组件注册方式

IoC:组件注册方式

作者: 李拾叁的摸鱼日常 | 来源:发表于2019-10-26 15:11 被阅读0次

@Bean + @Scope + @Lazy

  • 定义在方法上,方法名称就是注入的对象名称,方法的返回值就是注入对象的类型
  • 默认是单例bean,IoC容器初始化时,对象就被创建通过@Scope可以修改
  • @Lazy可以让单例bean在IoC容器初始化不创建,只有获取时才创建

ComponentScan

  • 所描特定包下的所有包含@Controller、@Service、@Repository、@Componet注解的类
  • 自定义includeFilters规则时要禁用默认规则useDefaultFilters = false
  • @ComponentScan.Filter默认规则是根据注解过滤的FilterType.ANNOTATION,可以自定义规则,需要实现org.springframework.core.type.filter.TypeFilter接口
public interface TypeFilter {
    boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
            throws IOException;

}

@Condition

  • 定义在类上、方法上,根据条件决定组件是否能够由IoC容器管理
  • 需要实现org.springframework.context.annotation.Condition接口,实现matches(),只有当matches()返回true时,Condition才生效,matches()的context参数可以获取IoC容器相关的对象,比如BeanDefinitionRegistry、Environment
public interface Condition {
    boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata);
}

@Import

  • 直接倒入一个类
  • 实现org.springframework.context.annotation.ImportSelector接口,selectImports()返回值必须是类的全路径名称
public interface ImportSelector {
    String[] selectImports(AnnotationMetadata importingClassMetadata);
}
  • 实现org.springframework.context.annotation.ImportBeanDefinitionRegistrar接口,通过BeanDefinitionRegistry手动注册一个bean
public interface ImportBeanDefinitionRegistrar {
    public void registerBeanDefinitions(
            AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry);
}

FactoryBean

  • 实现org.springframework.beans.factory.FactoryBean接口
  • 将FactoryBean实现类交给IoC容器,要获取FactoryBean本身使用&
public interface FactoryBean<T> {

    T getObject() throws Exception;

    Class<?> getObjectType();

    boolean isSingleton();

}

相关文章

  • IoC:组件注册方式

    @Bean + @Scope + @Lazy 定义在方法上,方法名称就是注入的对象名称,方法的返回值就是注入对象的...

  • Spring相关技术自检表

    IOC组件注册-@Configuration&@Bean给容器中注册组件组件注册-@ComponentScan-自...

  • vue升级之路(二)-- vue组件间方法调用及数据传输

    注册vue组件的几种方式 全局注册(这种方式注册组件必须在vue实例化之前声明) 局部注册 扩展实例 组件之间的数...

  • 1.12、全局组件和局部组件注册

    十二、组件化 1.全局注册组件的方式 2.局部注册组件的方式 3.将组件的html代码拿出来进行组件化的方式

  • Vue 组件全局注册和局部注册使用及原理

    Vue在注册组件时有两种方式,全局注册和局部注册全局注册的话我们可以在任意组件中使用注册的组件,而局部注册的话我们...

  • Vue-components笔记

    一、组件的注册 组件的注册有两种方式: 全局注册 示例代码: my-component就是注册的组件的自定义标签名...

  • Vue组件化开发

    一:组件注册1.1全局组件注册 1.2组件的用法 1.3组件注册的注意事项 1.4组件的命名方式 2.局部组件 2...

  • Vue组件基础

    1. 组件注册 组件需要注册后才可以使用。组件有全局注册和局部注册两种方式。全局注册后,任何Vue实例都可以使用。...

  • 03Vue的组件化开发

    Vue的组件化开发 组件注册 全局组件注册的语法 组件用法 实例:使用组件的方式,实现点击按钮触发数据自增的功能。...

  • 快手组件化之术——IoC自注册

    快手组件化之术——IoC自注册 道势术,以势养道,以术谋势。 —— 《道德经》 阅读本文需要对 Java 组件...

网友评论

      本文标题:IoC:组件注册方式

      本文链接:https://www.haomeiwen.com/subject/deoepctx.html