zoukankan      html  css  js  c++  java
  • Spring获取实现某接口的所有实例bean

    1、获取 applicationContext,通过ApplicationAware自动注入

    2、getBeansOfType、getBeanNamesForType

    //key位 beanName,value为bean
    Map<String, Interface> result = applicationContext().getBeansOfType(Interface.class);
    
    //返回 beanName 的String 数组
    String[] result = applicationContext().getBeanNamesForType(Interface.class);

    注:这种方法除了可以获取实现【接口】的所有Bean,也可以获取所有继承【抽象类/类】的所有Bean,如下

    Map<String, AbstractObject> result = applicationContext().getBeansOfType(AbstractObject.class);

    补充:java通过Class的isAssignableFrom方法

      注释:【a.isAssignableFrom(b)】有两个Class类型的类象,一个是调用isAssignableFrom方法的类对象(对象a),以及方法中作为参数的这个类对象(对象b),这两个对象如果满足以下条件则返回true,否则返回false:

        a对象所对应类信息是b对象所对应的类信息的父类或者是父接口,简单理解即a是b的父类或接口

        a对象所对应类信息与b对象所对应的类信息相同,简单理解即a和b为同一个类或同一个接口

  • 相关阅读:
    压缩感知的由来
    VS2010自动崩溃问题
    随机过程好书推荐
    Kernel PCA
    稀疏性与L1范数
    豆瓣关于计算机视觉的书评及介绍
    压缩感知测量矩阵的研究现状(转)
    信号的功率谱、能量谱、频谱的区别(转)
    vc++ & matlab 换行符号
    arg min 的含义
  • 原文地址:https://www.cnblogs.com/itplay/p/10301260.html
Copyright © 2011-2022 走看看