一、直接将对象注册成Bean,主要有以下几步:

  • 通过BeanDefinition,来定义Bean(对象本身)
  • 将BeanDefinition注册到容器
  • public class Student {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
    }
    public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext=new AnnotationConfigApplicationContext();//定义beanAbstractBeanDefinition beanDefinition= BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();beanDefinition.setBeanClass(Student.class);//注册beanapplicationContext.registerBeanDefinition("s",beanDefinition);applicationContext.refresh(); //必须要刷新Student student= applicationContext.getBean("s",Student.class);System.out.println(student);
    }

    2.通过FactoryBean来注册Bean,主要分为以下几步:

  • 实现FactoryBean
  • 通过BeanDefinition来定义Bean(上步的对象)
  • 注册到容器
public class StudentFactoryBean implements FactoryBean {@Overridepublic Object getObject() throws Exception {return new Student();}@Overridepublic Class<?> getObjectType() {return Student.class;}
}
public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext=new AnnotationConfigApplicationContext();//定义beanAbstractBeanDefinition beanDefinition= BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();beanDefinition.setBeanClass(StudentFactoryBean.class);//注册beanapplicationContext.registerBeanDefinition("s",beanDefinition);applicationContext.refresh(); //必须要刷新Student student= applicationContext.getBean("s",Student.class);System.out.println(student);}

BeanDefinition使用方式相关推荐

  1. spring源码系列一--BeanDefinition

    如果说java是由对象组成,那么spring-framework框架可以说是由BeanDefinition所构成.BeanDefinitiion其实是spring中的顶级接口,我们在阅读源码之前必须要 ...

  2. 3W 字的 Spring Boot 超详细总结

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者|CHEN川 http://www.jianshu.c ...

  3. 最棒 Spring Boot 干货总结(超详细,建议收藏)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:CHEN川 链接:http://www.jianshu.co ...

  4. [Spring 深度解析]第6章 Spring的IoC容器系列

    6. Spring的IoC容器系列 ​ IoC容器为开发者管理对象之间的依赖关系提供了很多便利和基础服务.有许多IoC容器供开发者选择,SpringFramework的IoC核心就是其中一个,它是开源 ...

  5. Spring Boot全面总结(超详细,建议收藏)

    前言:本文非常长,建议先mark后看,也许是最后一次写这么长的文章 说明:前面有4个小节关于Spring的基础知识 分别是:IOC容器.JavaConfig.事件监听.SpringFactoriesL ...

  6. 给你一份长长长的 Spring Boot 知识清单(上)

    预警:本文非常长,建议先mark后看,也许是最后一次写这么长的文章 说明:前面有4个小节关于Spring的基础知识,分别是:IOC容器.JavaConfig.事件监听.SpringFactoriesL ...

  7. springboot中接口实例化_疫情爆发在家闲出屁的我,梳理一下SpringBoot知识点

    在过去两三年的Spring生态圈,最让人兴奋的莫过于Spring Boot框架.或许从命名上就能看出这个框架的设计初衷:快速的启动Spring应用.因而Spring Boot应用本质上就是一个基于Sp ...

  8. Spring源码(1)

    准备spring环境: @org.junit.Test public void test01(){//把spring所有环境准备好// 1.准备好DefaultListableBeanFactory/ ...

  9. 超详细 Spring Boot 知识清单

    2019独角兽企业重金招聘Python工程师标准>>> 超详细 Spring Boot 知识清单 在过去两三年的Spring生态圈,最让人兴奋的莫过于Spring Boot框架.或许 ...

最新文章

  1. python 函数递归一次增加一次变量_python3--函数(函数,全局变量和局部变量,递归函数)...
  2. 关于struts2如何去掉默认的后缀(.action)
  3. Oracle中,使 CREATE TABLE AS SELECT 支持ORDER BY
  4. 新制造 新工科 新机制——李泽湘教授在工程教育高峰论坛上的报告
  5. Vue——显示微信用户名称中enjoin表情
  6. 性能调优工具类TimeStone
  7. SSISDB6:参数和环境变量
  8. 扩展系统功能——装饰模式
  9. Java锁的种类以及辨析
  10. 高并发下的系统设计(偏数据库设计)
  11. Linux 符号链接与 inode
  12. IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
  13. bzoj 4001: [TJOI2015]概率论(找规律)
  14. html 显示接口数据格式化,科技常识:html格式化输出JSON示例(测试接口)
  15. C++ Liberary websit
  16. 投影仪融合+拼接处理系统制作原理
  17. 空间解析几何之向量运算
  18. 电脑主板线路连接图解_电脑主板连接线图解
  19. 升级Ubuntu造成RTL8125网卡驱动丢失
  20. 高德地图海量点 API 初探

热门文章

  1. StoreFront配置本地安装Receiver客户端
  2. 【网络安全科普】infra工程师 网络科普
  3. FANSEA泛海微MCU单片机IC方案LED智能紫外(UVC+UVA)消毒灯
  4. OCR文字识别—基于CTC/Attention/ACE的三大解码算法
  5. LaTex常用包及其功能
  6. 偏向锁、轻量级锁、重量级锁的区别和解析
  7. 【计算机网络】分层结构(OSI 7层模型、TCP/TP 4层模型、5层参考模型)
  8. 5种创建Dataframe方法
  9. 设计模式基础(二):目标与原则
  10. 给希望成为游戏美术设计师的朋友