spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范。

首先要了解depends-on或@DependsOn作用,是用来表示一个bean A的实例化依赖另一个bean B的实例化, 但是A并不需要持有一个B的对象,如果需要的话就不用depends-on,直接用依赖注入就可以了或者ref标签。

场景 解决方案
A需要持有B对象(注解方式)
@Autowired
A需要持有B对象(xml方式) ref标签
A不需要持有B对象,只是依赖B的实例化(注解方式) @DependsOn
A不需要持有B对象,只是依赖B的实例化(xml方式) depends-on

但spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载。但如果beanA不直接依赖B,我们如何让B仍先加载呢?

控制bean初始化顺序
可能有些场景中,bean A 间接依赖 bean B。如Bean B应该需要更新一些全局缓存,可能通过单例模式实现且没有在spring容器注册,bean A需要使用

Spring控制Bean加载顺序相关推荐

  1. Spring 使用注解@DependsOn控制Bean加载顺序

    文章目录 1. 前言 2. 代码实现 1. 前言 默认情况下,Spring加载Bean的顺序是不确定的(或者可以理解为,按编译后的class文件顺序加载).当我们需要控制Bean加载顺序以满足特定的需 ...

  2. 使用 加载 顺序_SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣

    在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文 ...

  3. Spring Boot配置加载顺序

    Spring Boot 不仅可以通过配置文件进行配置,还可以通过环境变量.命令行参数等多种形式进行配置.这些配置都可以让开发人员在不修改任何代码的前提下,直接将一套 Spring Boot 应用程序在 ...

  4. S2JH经验分享:控制jdbc:initialize-database与其他bean加载顺序

    为什么80%的码农都做不了架构师?>>>    为了便于干净的初始化部署运行S2JH框架,采用了jdbc:initialize-database来从SQL脚本中初始化框架基础数据,其 ...

  5. Spring的bean加载流程

    IOC容器就像是一个工厂,里面有很多流水线生产出一个个产品(bean).bean的加载流程大概分为: 容器启动阶段 bean加载阶段 容器启动阶段: 1.配置元信息 当你生产物品的时候总得知道产品得规 ...

  6. Spring Boot 配置加载顺序详解

    使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 ...

  7. Spring Boot配置文件加载顺序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过spring.config.location改变配置文件的位置 二.外部配置加载顺序 1.使用命令行参数指定加 ...

  8. Spring Boot 配置文件加载顺序

    1.介绍 依次为: bootstrap.properties -> bootstrap.yml -> application.properties -> application.ym ...

  9. spring boot实战(第十篇)Spring boot Bean加载源码分析

    前言 前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程 refresh 首先来看SpringApplication#run方法中refre ...

最新文章

  1. 苹果:高通的“非法行为”损害了整个行业
  2. Objective-C 内存管理之ARC规则
  3. 为什么微信内无法分享转发网址,详谈微信网址防屏蔽的办法
  4. 经典C语言程序100例之十五
  5. HDU - 2825 Wireless Password(AC自动机+状压dp)
  6. [书籍推荐]《软件设计精要与模式(第2版)》-张逸——提高设计模式及软件设计的方法...
  7. [jQuery] jQuery中如何将数组转化为json字符串,然后再转化回来?
  8. cmd下pip安装mysql_Windows下使用pip安装mysql-python
  9. Python利用PyPDF2库获取PDF文件总页码
  10. js进阶 13 jquery动画函数有哪些
  11. 这14个Java核心并发容器,Java高手和低手的区别点
  12. Atitit 乱码的检测与纠正总结 目录 1. Atitit.request 乱码的检测与解决 attilax总结 1 1.1. 乱码的检测,,可以检测,列徐俩个问好?? 1 1.2. 使用常用汉字
  13. 【图像边缘检测】基于matlab CNN灰度图像边缘提取【含Matlab源码 490期】
  14. 下个一个语音,计算机.,中国计算机产业的下一个亮点——汉语语音合成的实用化...
  15. python logger.debug_python处理logger日志
  16. VS2005中远程调试的配置方法
  17. html中页面整体排版,html在不同尺寸浏览器窗口中页面排版混乱
  18. 三维全息显微镜成生物成像领域“新宠”
  19. 概述HTTPS,简单了解对称性加密算法、非对称性加密算法方式
  20. 论文笔记|Unsupervised Keyphrase Extraction by Jointly Modeling Local and Global Context

热门文章

  1. vue krpano 视角监听
  2. 第八-九周-总结(day38-54)
  3. 东莞厚街工业机器人展会_展会效果大起底2020东莞厚街机械展暨2020东莞国际工业自动化及机器人展览会...
  4. python实现在excel文件中写入和追加内容
  5. 水滴pin安卓版apk_水滴清单app
  6. Exchange邮箱的创建和配置
  7. 鲁大师2023年Q3电脑排行:三足鼎立,PC圈一场旷日持久之战即将开启
  8. SAP中CK11N成本估算的取价逻辑
  9. AI芯片:寒武纪DaDianNao结构分析
  10. 浏览器无法访问gitlab.nicky.com解决办法