spring-boot控制bean的创建顺序

news/2024/9/22 21:16:39/

1、order注解(不一定有效)

org.springframework.core.annotation.Order

2、dependsOn注解(有效)

org.springframework.context.annotation.DependsOn

3、提前将bean注册为BeanDefinition

java">1、实现BeanDefinitionRegistryPostProcessor,将userService注册
public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();beanDefinition.setBeanClass(UserService.class);registry.registerBeanDefinition("userService", beanDefinition);}
}2、加入上下文中
public class MyApplicationContextInitializer implements ApplicationContextInitializer {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {applicationContext.addBeanFactoryPostProcessor(new MyBeanDefinitionRegistryPostProcessor());}
}3、配置扫描生效,在resources下创建MATE-INF文件夹,在MATE-INF文件夹下创建spring.factories文件,然后加入下面的配置
org.springframework.context.ApplicationContextInitializer=com.example.springbootshutdown.MyApplicationContextInitializer
org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor

http://www.ppmy.cn/news/1443777.html

相关文章

与Apollo共创生态:我们携手远航

目录 小程一言会议记录 回望7年发展展望未来小程有感 小程一言 4月22日,百度Apollo在北京车展前夕举办了以“破晓•拥抱智变时刻”为主题的智能汽车产品发布会。我在观看后也是很是触动 作为在校大学生的我,从大一开始知道Apollo开始,Apollo…

Kubernetes:云原生时代的核心引擎

文章目录 一、Kubernetes简介:引领云原生潮流二、K8s的核心特性:自动化与智能化三、K8s的实践应用:打造高效云原生应用架构四、K8s的挑战与应对:安全与性能并重五、K8s的未来展望:无限可能与挑战并存《Kubernetes快速进…

Python中format的常见用法

一、填充 1、按默认顺序填充 name "Alice" age 25 print("My name is {} and I am {} years old.".format(name, age))输出:My name is Alice and I am 25 years old. 2、指定位置 name "Bob" age 30 print("My name is…

dremio数据湖sql行列转换及转置

1、行转列 (扁平化) 数据准备 表 aa 1.1 cross join unnest 在Dremio中,UNNEST 函数用于将数组或复杂类型的列(如JSON、Map或Array类型)中的值“炸裂”(分解)成多行. with aa as ( select 上海 as city, ARRAY[浦东…

计算机系统概述试题

01.完整的计算机系统应包括()。 A.运算器、存储器、控制器 B.外部设备和主机 C.主机和应用程序 D.配套的硬件设备和软件系统 02.冯诺依曼机的基本工作方式是()。 A.控制流驱动方式 B.多指令多数据流方式 C.微程序控制方式 D.数据流驱动方式 03.下列()是冯诺依曼机…

Kafka(十二)Streams

目录 Streams1 什么式是流式处理2 流式处理的相关概念2.1 拓扑2.2 时间2.2.1 输入时间2.2.2 输出时间 2.3 状态2.4 流和表2.5 时间窗口2.5.1 测试时间窗口 2.6 处理保证 3 流式处理设计模式3.1 单事件处理3.2 使用本地状态3.3 多阶段处理和重分区3.4 使用外部查找:流…

HTML5 常见的语义标记(布局)

HTML5 常见的语义标记(布局) <header> 显示网站名称、主题或者主要信息 <nav> 网站的连接菜单 <aside> 用于侧边栏 <main> 表示页面的主要显示内容, 页面有且只有一个, 不应该被任何其他结构标签包含, 不能是以下元素的后代: section/nav/footer/h…

回归(Regression)

回归&#xff08;Regression&#xff09;在统计学和机器学习中是一种预测建模技术&#xff0c;它研究的是因变量&#xff08;目标变量&#xff09;和自变量&#xff08;特征&#xff09;之间的关系。回归分析的目的是建立一个数学模型&#xff0c;这个模型能够基于一个或多个自…