Spring控制Bean加载顺序
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加载顺序相关推荐
- Spring 使用注解@DependsOn控制Bean加载顺序
文章目录 1. 前言 2. 代码实现 1. 前言 默认情况下,Spring加载Bean的顺序是不确定的(或者可以理解为,按编译后的class文件顺序加载).当我们需要控制Bean加载顺序以满足特定的需 ...
- 使用 加载 顺序_SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣
在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文 ...
- Spring Boot配置加载顺序
Spring Boot 不仅可以通过配置文件进行配置,还可以通过环境变量.命令行参数等多种形式进行配置.这些配置都可以让开发人员在不修改任何代码的前提下,直接将一套 Spring Boot 应用程序在 ...
- S2JH经验分享:控制jdbc:initialize-database与其他bean加载顺序
为什么80%的码农都做不了架构师?>>> 为了便于干净的初始化部署运行S2JH框架,采用了jdbc:initialize-database来从SQL脚本中初始化框架基础数据,其 ...
- Spring的bean加载流程
IOC容器就像是一个工厂,里面有很多流水线生产出一个个产品(bean).bean的加载流程大概分为: 容器启动阶段 bean加载阶段 容器启动阶段: 1.配置元信息 当你生产物品的时候总得知道产品得规 ...
- Spring Boot 配置加载顺序详解
使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 ...
- Spring Boot配置文件加载顺序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过spring.config.location改变配置文件的位置 二.外部配置加载顺序 1.使用命令行参数指定加 ...
- Spring Boot 配置文件加载顺序
1.介绍 依次为: bootstrap.properties -> bootstrap.yml -> application.properties -> application.ym ...
- spring boot实战(第十篇)Spring boot Bean加载源码分析
前言 前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程 refresh 首先来看SpringApplication#run方法中refre ...
最新文章
- 苹果:高通的“非法行为”损害了整个行业
- Objective-C 内存管理之ARC规则
- 为什么微信内无法分享转发网址,详谈微信网址防屏蔽的办法
- 经典C语言程序100例之十五
- HDU - 2825 Wireless Password(AC自动机+状压dp)
- [书籍推荐]《软件设计精要与模式(第2版)》-张逸——提高设计模式及软件设计的方法...
- [jQuery] jQuery中如何将数组转化为json字符串,然后再转化回来?
- cmd下pip安装mysql_Windows下使用pip安装mysql-python
- Python利用PyPDF2库获取PDF文件总页码
- js进阶 13 jquery动画函数有哪些
- 这14个Java核心并发容器,Java高手和低手的区别点
- Atitit 乱码的检测与纠正总结 目录 1. Atitit.request 乱码的检测与解决 attilax总结	1 1.1. 乱码的检测,,可以检测,列徐俩个问好??	1 1.2. 使用常用汉字
- 【图像边缘检测】基于matlab CNN灰度图像边缘提取【含Matlab源码 490期】
- 下个一个语音,计算机.,中国计算机产业的下一个亮点——汉语语音合成的实用化...
- python logger.debug_python处理logger日志
- VS2005中远程调试的配置方法
- html中页面整体排版,html在不同尺寸浏览器窗口中页面排版混乱
- 三维全息显微镜成生物成像领域“新宠”
- 概述HTTPS,简单了解对称性加密算法、非对称性加密算法方式
- 论文笔记|Unsupervised Keyphrase Extraction by Jointly Modeling Local and Global Context
热门文章
- vue krpano 视角监听
- 第八-九周-总结(day38-54)
- 东莞厚街工业机器人展会_展会效果大起底2020东莞厚街机械展暨2020东莞国际工业自动化及机器人展览会...
- python实现在excel文件中写入和追加内容
- 水滴pin安卓版apk_水滴清单app
- Exchange邮箱的创建和配置
- 鲁大师2023年Q3电脑排行:三足鼎立,PC圈一场旷日持久之战即将开启
- SAP中CK11N成本估算的取价逻辑
- AI芯片:寒武纪DaDianNao结构分析
- 浏览器无法访问gitlab.nicky.com解决办法