1、自定义一个 BeanDefinition

@Component
public class BeanPro implements BeanDefinitionRegistryPostProcessor, PriorityOrdered, Ordered {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {//查询BeanDefinitionfinal String[] beanDefinitionNames = registry.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames) {BeanDefinition beanDefinition = registry.getBeanDefinition(beanDefinitionName);System.out.println(beanDefinition);}GenericBeanDefinition genericBeanDefinition = new GenericBeanDefinition();genericBeanDefinition.setBeanClass(BeanDefinitionBean.class);MutablePropertyValues propertyValues = genericBeanDefinition.getPropertyValues();propertyValues.add("name","Jack");registry.registerBeanDefinition("beanDefinitionBean",genericBeanDefinition);}@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;String[] beanDefinitionNames = registry.getBeanDefinitionNames();DefaultListableBeanFactory beanFactory1 = (DefaultListableBeanFactory)beanFactory;beanFactory1.setAllowBeanDefinitionOverriding(true);beanFactory1.setAllowCircularReferences(true);beanFactory1.setAllowRawInjectionDespiteWrapping(true);}@Overridepublic int getOrder() {return 0;}
}

2、手动创建了对象,并且交给spring管理了

applicationContext.getBeanFactory().registerSingleton("jack", new Jack());

3、实现 FactoryBean接口

/** ** 灵活定义需要我们自己创建的实例的时候,我们可以实现factoryBean接口* 在getObject方法里面定义实例化过程**/
@Component
public class FactoryBeanDemo implements FactoryBean {@Overridepublic Object getObject() throws Exception {return new Student();}@Overridepublic Class<?> getObjectType() {return Student.class;}
}

4、@Bean注解

spring中自定义对象交给spring容器管理的4种方式相关推荐

  1. Spring中把一个bean对象交给Spring容器管理的三种方式

    一.使用@Component,把bean对象依赖交给Spring容器 注意,该注解不能使用,则说明未添加依赖,需要去该项目pom.xml文件内引入依赖,若该项目只是作为一个存放工具类的子模块项目,没有 ...

  2. 关于springboot的将自建user对象交给springboot容器管理时出现的小问题

    今天在复习springboot时,出现了一个小小的一个bug,特此记录一下,我也不知道怎么回事. 当我在resource目录下书写user.properties时,我使用user.name=XXX时, ...

  3. java中集合对象与string互转的几种方式

    准备数据: UserInfo.java @Data @AllArgsConstructor public class UserInfo {private Long id;private String ...

  4. 把对象交给spring管理的3种方法及经典应用

    背景 先说一说什么叫把对象交给spring管理.它区别于把类交给spring管理.在spring里采用注解方式@Service.@Component这些,实际上管理的是类,把这些类交给spring来负 ...

  5. 你不知道的小技巧 — 把对象交给spring管理的3种方法及经典应用

    背景 先说一说什么叫把对象交给spring管理.它区别于把类交给spring管理.在spring里采用注解方式@Service.@Component这些,实际上管理的是类,把这些类交给spring来负 ...

  6. java 自定义xml_6.1 如何在spring中自定义xml标签

    dubbo自定义了很多xml标签,例如,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子. 一 编写模型类 1 packagecom.hulk.testdubbo.model ...

  7. ajax redirectattributes 使用,Spring中RedirectAttributes对象重定向传参

    Spring3中的FlashAttribute 为 了防止用户刷新重复提交,save操作之后一般会redirect到另一个页面,同时带点操作成功的提示信息.因为是Redirect,Request里 的 ...

  8. spring中自定义注解(annotation)与AOP中获取注解___使用aspectj的@Around注解实现用户操作和操作结果日志

    spring中自定义注解(annotation)与AOP中获取注解 一.自定义注解(annotation) 自定义注解的作用:在反射中获取注解,以取得注解修饰的类.方法或属性的相关解释. packag ...

  9. Spring中Bean对象的存储和获取

    目录 1. 更简单的将bean存储到spring中 1.0 前置工作,在配置文件中设置bean扫描的根路径 1.1 通过注解将bean存储到spring中 1.1.1 @Controller[控制器] ...

最新文章

  1. robot framework中的timeout的关键词
  2. AndroidStudio中下载某版本gradle速度慢,从哪里高速下载指定版本gradle
  3. ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作
  4. (部分来自windows核心编程)远程注入dll
  5. 阿里巴巴对Java编程【代码格式】的规约
  6. UML---(1)一张图看懂UML 类图
  7. 基于Visual Studio2012实现Windows8的metro界面笔迹手写识别文档
  8. php网站简繁切换,一个独立可用的中文简体繁体转换PHP程序
  9. 3.配置阿里云镜像加速
  10. 【简单的四足机器人制作(基于STC15/LPC845)】
  11. JAVA中数字转大写字母_java实现数字转大写
  12. java网络封包_java封包
  13. OSChina 周四乱弹 —— 开个程序门诊?
  14. (白帽生存法则)常见的网站攻击方式
  15. 判断英伟达显卡计算力及是否支持FP16和INT8
  16. vue中methods、mounted等使用方法整理
  17. 操作系统的概念 (OS学习笔记)
  18. SEI(Supplemental Enhancement Information)
  19. RED5 1.0视频直播服务器 WINDOWS安装记录 教程
  20. Kaggle比赛----入门指导

热门文章

  1. 帆软 FineReport 动态列如何设置
  2. Linux 服务器 apt 源配置方法【一文读懂】
  3. 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置
  4. bootstrap框架的日历(bootstrap-datetimepicker)
  5. 函数最值问题实验(MATLAB实现)
  6. rrweb 中文使用说明
  7. 《Effective C++》 总结篇(模板与泛型编程)
  8. Android实现跳转到应用市场进行版本更新功能
  9. 不与最大数相同的数字之和
  10. 秃头有救了,科学家发现神奇分子SCUBE3