单一类型依赖查找接口 - BeanFactory

BeanFacotry是spring中比较原始的Factory,BeanFactory是个Factory,也就是IOC容器或对象工厂

  • 根据Bean名称查找

    • getBean(String)
    • 覆盖默认参数getBean(String,Object)
  • 根据Bean类型查找
    • Bean实时查找

      • getBean(Class)
      • 覆盖默认参数 getBean(Class,Object)
    • Bean延时查找
      • getBeanProvider(Class)
      • getBeanProvider(ResolvableType)
  • 根据Bean名称和Bean类型查找
    • getBean(String,Class)

实体类Rumenz.java

package com.rumenz;
public class Rumenz {private Integer id;private String name;@Overridepublic String toString() {return "Rumenz{" +"id=" + id +", name='" + name + '\'' +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

根据Bean名称查找

package com.rumenz;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();ac.register(DemoApplication.class);ac.refresh();//根据名称查找Rumenz rumenz= (Rumenz) ac.getBean("rumenz");System.out.println(rumenz);ac.close();}@Beanpublic Rumenz rumenz(){Rumenz rumenz = new Rumenz();rumenz.setId(123);rumenz.setName("入门小站");return rumenz;}
}

根据类型查找

package com.rumenz;import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();ac.register(DemoApplication.class);ac.refresh();//根据类型查找Rumenz rumenz = ac.getBean(Rumenz.class);System.out.println(rumenz);ac.close();}@Beanpublic Rumenz rumenz(){Rumenz rumenz = new Rumenz();rumenz.setId(123);rumenz.setName("入门小站");return rumenz;}}

Bean延时查找 getBeanProvider

package com.rumenz;
import java.util.Iterator;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();ac.register(DemoApplication.class);ConfigurableListableBeanFactory beanFactory = ac.getBeanFactory();ac.refresh();ObjectProvider<Rumenz> obj = beanFactory.getBeanProvider(Rumenz.class);Iterator<Rumenz> iterator = obj.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}ac.close();}@Beanpublic Rumenz rumenz(){Rumenz rumenz = new Rumenz();rumenz.setId(123);rumenz.setName("入门小站");return rumenz;}}

根据Bean名称和Bean类型查找


package com.rumenz;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();ac.register(DemoApplication.class);ac.refresh();//根据Bean名称和Bean类型查找Rumenz rumenz = ac.getBean("rumenz",Rumenz.class);System.out.println(rumenz);ac.close();}@Beanpublic Rumenz rumenz(){Rumenz rumenz = new Rumenz();rumenz.setId(123);rumenz.setName("入门小站");return rumenz;}}

原文: https://rumenz.com/rumenbiji/spring-get-single-bean.html

Spring单一类型依赖查找Bean相关推荐

  1. Spring集合类型依赖查找

    集合类型依赖查找接口 - ListableBeanFactory 根据 Bean 类型查找 获取同类型 Bean 名称列表 getBeanNamesForType(Class) getBeanName ...

  2. Spring 延迟依赖查找Bean

    Bean 延迟依赖查找接口 // 一个对象工厂 public interface ObjectFactory<T> {// 返回一个对象T getObject() throws Beans ...

  3. Spring 层次性依赖查找Bean

    层次性依赖查找接口 - HierarchicalBeanFactory 双亲 BeanFactory:getParentBeanFactory() 层次性查找 根据 Bean 名称查找 基于 cont ...

  4. SpringIoc依赖查找-5

    1. 依赖查找的今世前生: Spring IoC容器从Java标准中学到了什么? 单一类型依赖查找 JNDI - javax.naming.Context#lookup(javax.naming.Na ...

  5. Java J2EE中的依赖查找

    个人看法:设计依赖查找的设计模式,是为了解耦. 单一类型依赖查找 JNDI javax.naming.Context#lookup JavaBeans java.beans.beancontext.B ...

  6. Spring依赖查找中的常见异常

    文章目录 BeansException的子接口 NoSuchBeanDefinitionException不存在要查找的Bean NoUniqueBeanDefinitionException 容器中 ...

  7. 【spring容器启动】之bean的实例化和初始化(文末附:spring循环依赖原理)

    本次我们通过源码介绍ApplicationContext容器初始化流程,主要介绍容器内bean的实例化和初始化过程.ApplicationContext是Spring推出的先进Ioc容器,它继承了旧版 ...

  8. Spring安全依赖查找

    依赖查找安全性对比 依赖查找类型 代表实现 是否安全 单一类型 BeanFactory#getBean 否 ObjectFactory#getObject 否 ObjectProvider#getIf ...

  9. Spring高手之路——深入理解与实现IOC依赖查找与依赖注入

    本文从xml开始讲解,注解后面给出 文章目录 1. 一个最基本的 IOC 依赖查找实例 2. IOC 的两种实现方式 2.1 依赖查找(Dependency Lookup) 2.2 依赖注入(Depe ...

最新文章

  1. 五分钟搞定 Linux 文档全部知识,就看这篇文章
  2. eclipse3.6默认指向 WebContent 目录 修改为 webRoot
  3. Oracle表字段的增删改和重命名
  4. 苏宁张近东和富士康郭台铭为什么要抛售阿里巴巴股票?
  5. 【转】Vector与ArrayList区别
  6. 【DP】错排问题(ybtoj DP-1-1)
  7. 麦克劳林展开式_数学家麦克劳林与牛顿的故事
  8. python导入mongodb_python实现mongodb的备份与导入
  9. linux下时区的一些认识
  10. H3C IPv6地址配置命令
  11. Java基础之Java 修饰符
  12. phpcms上线步骤,无法生成缓存,页面空白原因
  13. informatic对表的增量抽取机制
  14. poj3537 Crosses ans Crosses
  15. arn-linux-gcc编译失败,arm-linux-gnueabihf-gcc交叉编译可执行程序失败的一种处理办法...
  16. win10锁屏壁纸保存方法
  17. 广州大学 数据结构实验报告
  18. 搭建spark源码运行环境报错及解决办法
  19. #2708. 黑暗(dark)
  20. 关于安装Python过程中 无法访问Windows Installer服务问题解决

热门文章

  1. linux下的图形界面扫雷游戏(Gtk+2.0)
  2. Executors 线程池的7个参数详解
  3. pair的用法 make_pair
  4. python的dropna 和notna的性能_python轻松滤除缺失数据
  5. 怎么看电脑有没有蓝牙_怎么选购电脑音响?挑选到性价比高的电脑桌面音箱,看完这篇推荐指南就懂了!...
  6. Java中的深拷贝(深复制)和浅拷贝(浅复制)
  7. 如何 配置apache 读取php模块中的 配置文件
  8. Windows7下搭建Eclipse+Python开发环境
  9. CentOS 安装jdk1.7 32位
  10. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(8月5日-8月12日)