该方法用于获取 Spring 容器中指定类型的所有 JavaBean 对象。

语法:

getBeansOfType(Class type)

参数说明:

  • type:指定的类的 Class 示例。

返回值:容纳指定类型JavaBean对象的Map集合。

示例

首先获取容器中 Date 类的所有 JavaBean 名称,然后获取所有 Date 类的 JavaBean 的 Map 集合,再使用 JavaBean 名称分别获取示例对象,最后输出结果,关键代码如下:

public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("appContext.xml");String[] eanNames = context.getBeanNamesForType(Date.class);  //获取指定类型的所有JavaBean对象Map beans = context.getBeansOfType(Date.class);  //获取容器中指定类for(String name:beanNames){Date bean = (Date)beans.get(name);System.out.println("名称为"+name+"的JavaBean输出结果为:"+bean);}
}

该示例的配置文件代码如下:

<?xml version="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="time"class="java.util.Date"></bean><%--配置JavaBean--%><bean id="time2"class="java.util.Date"></bean><bean id="time3"class="java.util.Date"></bean></beans>

延展:

可以通过这种方式获取容器中定义的扩展点类型,基于业务场景路由到具体的业务扩展点实现类上面;

@Component
public class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {SpringContextUtil.applicationContext = applicationContext;}public static <T> List<T> getBeanListOfType(Class<T> clazz) {List<T> result = new ArrayList<>();Map<String, T> map = applicationContext.getBeansOfType(clazz);if (null != map) {result.addAll(map.values());}return result;}
}

Spring getBeansOfType方法 剖析及延展:获取指定类型的JavaBean相关推荐

  1. 【Qt】Scene中获取指定类型的自定义图元

    通过阅读 Qt 官方文档中的"Elastic Nodes Example"例子,学习到如何在场景(Scene)中获取某个类型的自定义图元. 官方Demo运行效果: 该文档中,作者自 ...

  2. 安卓 获取指定类型的文件_太良心了!传文件这件小事,这款免费APP比微信QQ好用十倍!...

    不知道大家在遇到手机与手机.手机与电脑之间互传文件的时候,是借助的什么工具? 是通过微信QQ这些社交软件,还是直接上数据线? 这些方法都不是特别方便:微信限制文件大小和类型,用数据线需要频繁插拔. 那 ...

  3. java json 多余属性,fastjson支持JSON字符串解析到指定类型的JavaBean时的多余属性么?...

    我给你的示例是放到全局ParserConfig的, 你可以每次解析的时候,在JSON.parseObject的参数里传递自己的ParserConfig,以达到只控制部分拦截的功能. 如果parseOb ...

  4. C#实现 获取指定字节长度 中英文混合字符串 的方法

    平时在作数据库插入操作时,如果用 INSERT 语句向一个varchar型字段插入内容时,有时会因为插入的内容长度超出规定的长度而报错.尤其是插入中英文混合字符串时,SQL Server中一般中文要占 ...

  5. java 反射 获取方法列表_Java 反射获取类详细信息的常用方法汇总

    为了加深印象,特把方法都从新敲了一遍,等不会的时候返回了看看就好了. 类ReflectionDemo package Reflection; @Deprecated public class Refl ...

  6. python查找指定文件夹并重命名_python获取指定文件夹下的所有文件名,并删选指定类型文件进行重命名以及撤销重命名...

    1.加载包 import os 2.定义函数:获取文件夹file_dir下指定类型file_type的所有文件名 def file_name(file_dir,file_type=''):#默认为文件 ...

  7. 使用Calendar类获取指定日期所在年/月份、周第一天、最后一天

    最近做项目有涉及需要获取指定日期或当前日期所在月份和周第一和最后一天,结合网上的资料和自己项目开发记录,记录下用到的这些方法. 目录 1.获取指定年份的第一天和最后一天 2. 获取指定日期月份第一天和 ...

  8. Java listFiles查找指定类型的文件简单做法

    在Java中获取指定类型的文件,可以用带参数的listFiles的来实现 在网上搜了一些方法,几乎都是新建一个实现FilenameFilter或者FileFilter的类,然后把它作为listFile ...

  9. python读取文件名-Python获取指定文件夹下的文件名的方法

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

最新文章

  1. Hyper-V的版本
  2. 如何在Python中声明一个数组?
  3. 互联网共鸣之声:2018年或成为云计算转折之年
  4. jquery中动态效果
  5. 迪普工业以太网交换机产品线
  6. 《c语言从入门到精通》看书笔记——第9章 函数
  7. SSH应用之BBS之路-2、Hibernate配置
  8. mysql的本地id可以随便设置马_Mysql 都会遭受哪些方面的攻击?
  9. 在IE中用js改变table的innerHTML属性报“未知的运行时错误”
  10. linux手误rm可能不需要跑路
  11. 【3】测试用例设计-因果图
  12. 驾驶员监控系统(DMS)
  13. 计算机网络ping用法,新手入门:ping命令的用法解释
  14. Unity内存/GC优化方法
  15. Pytorch学习率调整策略
  16. 计算程序运行时间,并将毫秒换算成人看得懂的文字,展示形式为时分秒
  17. 图形化编程 html,c++图形界面编程
  18. oracle fnd global,Oracle EBS R12 - 利用fnd_conc_global.set_req_globals设置子请求的Parent Request ID...
  19. xero 软件学习_使用PHP与Xero连接
  20. C51单片机播放音乐《起风了》

热门文章

  1. python反恐精英代码类似的编程_敲代码学Python:CS188之实现一致代价搜索
  2. 求教(java匿名类应用)
  3. wsus无法获取计算机,客户端不能从WSUS服务器取得更新故障
  4. Backbone 之 Inception:纵横交错 (Pytorch实现及代码解析
  5. 为什么内存进制是1024,数据传输速率是1000?
  6. 锁系列 - 2 - Synchronized
  7. 浅析ORACLE数据库高水位线(high water mark)
  8. 端到端安全能力,态势感知抵御潜在风险
  9. 面向切面(动态代理)
  10. java生成每天、每周、每月cron 表达式