spring加载类初始化顺序

今天看spring官网的时候,提到了Ordered执行顺序。我当时记得@PostConstruct注解会在bean加载后执行,现在又来了一个执行顺序,直接给我整蒙了。

于是我写了一个简单的dom来看看,它是什么:

@Service("t2ServerImpl")
//t1ServerImpl,t3ServerImpl省略。
public class t2ServerImpl implements Ordered, CommandLineRunner {int order = 1;public void print() {System.out.println("t2ServerImpl:" + order);}@Overridepublic int getOrder() {return order;}@Overridepublic void run(String... args) throws Exception {print();}@PostConstructpublic void init() {System.out.println("t2ServerImpl init");}
}

启动springBoot打印如下:

 

后来我改了t1ServerImpl为t4ServerImp,结果它是最后加载。

加载很有意思,应该是我这个没有依赖别的bean,所以就按照顺序加载了。

如果我这样:

我在t2中依赖t4。

这个时候t4就最先加载:

说完加载问题,我们来看看 Ordered执行顺序问题,这三哥类中都实现了CommandLineRunner接口的run方法,也就是说加载完毕后,回去执行run方法。

这个时候Ordered就可以控制这三个类的执行顺序。

t2ServerImpl:1
t4ServerImpl:2
t3ServerImpl:3

直接使用@Order效果也是一样的:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600301.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】Redis的使用

登录redis [roottest2 ~]# redis-cli 127.0.0.1:6379> 或[roottest2 ~]# redis-cli -h 192.168.67.12 -p 6379 192.168.67.12:6379> redis-benchmark 测试工具 redis-benchmark 是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能 基本的测试语…

js正则给数值每三位加逗号

<template><div>{{ num.toFixed(2).replace(/\B(?(\d{3})(?!\d))/g, ",") }}</div> </template> <script> </script> <style> </style> 如上所示&#xff1a;保留两位小数后&#xff0c;用正则进行替换 效果&am…

Nacos Namespace 未授权访问漏洞

Nacos Namespace 未授权访问漏洞 问题 nacos 源码启动&#xff0c;发现即使开启了鉴权&#xff1a;nacos.core.auth.enabledtrue&#xff0c;未登录情况下&#xff0c;命名空间列表接口仍旧能查询到数据 鉴权逻辑 通过**AuthFilter **进行权限校验判断方法上是否存在注解 …

Matlab 基础语法 小结

input x input(prompt) # input digit str1 input(prompt,s) # input string执行图像处理任务 require Image Processing Toolbox Image Processing Toolbox™ provides a comprehensive set of reference-standard algorithms and workflow apps for image processing, a…

linux 内核版本

Linux 内核的版本命名遵循主版本号.次版本号.修订版本号的模式。其中&#xff0c;主版本号表示重大的变化或重写&#xff1b;次版本号如果是偶数&#xff0c;表示稳定版本&#xff0c;适合广泛使用&#xff0c;如果是奇数&#xff0c;表示开发版本&#xff0c;包含新的实验性功…

WinForm用微软打包工具打包

WinForm用微软打包工具打包 1. 安装扩展 下载扩展Microsoft Visual Studio Installer Projects 点击扩展 —> 管理扩展 安装完之后重启VS就好了。 2. 新建Set up项目 点击解决方案 —> 添加 —> 新建项目 选择这个Setup Project 创建打包项目 安装项目&…

就业班 第二阶段(python) 2401--4.3 day2 python2

七、标准数据类型 1、为什么编程语言中要有类型 类型有以下几个重要角色&#xff1a; 对机器而言&#xff0c;类型描述了内存中的电荷是怎么解释的。 对编译器或者解释器而言&#xff0c;类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。 对程序员而言…

ACM ICPS独立出版 | 第三届智能无人系统与人工智能国际会议(SIUSAI 2024)

会议简介 Brief Introduction 2024年第三届智能无人系统与人工智能国际会议(SIUSAI 2024) 会议时间&#xff1a;2024年5月17日-19日 召开地点&#xff1a;中国青岛 大会官网&#xff1a;www.siusai.org 2024年第三届智能无人系统与人工智能国际会议(SIUSAI 2024)由青岛大学主办…

C语言 函数——函数的定义、调用和参数传递

目录 模块化编程&#xff08;Modular Programming&#xff09; 函数的分类 函数的定义 使用函数编程的好处 函数调用的基本方式 函数调用时的数据传递 函数调用的过程 main函数的特殊性 大话三国 分而治之 如果将main&#xff08;&#xff09;函数比作诸葛亮&#xff…

性能监控工具的配置及使用 - Spotlight On Oracle(oracle)

一、 Spotlight On Oracle(oracle) 1.1. 工具简介 Spotlight是一个强有力的Oracle数据库实时性能诊断工具,提供了一个直观的、可视化的数据库活动展现。Spotlight可视化展现性能瓶颈,一旦某个指标超出可接受的阀值的话。而且,通过下钻功能,DBA可以简单、快速地追查性能…

✌2024/4/3—力扣—盛最多水的容器

代码实现&#xff1a; 方法一&#xff1a;暴力解法——遍历左右边&#xff0c;找出所有面积&#xff0c;取最大值——超时 #define min(a, b) ((a) > (b) ? (b) : (a)) #define max(a, b) ((a) > (b) ? (a) : (b))int maxArea(int *height, int heightSize) {int ans …

扭蛋机小程序搭建,线上扭蛋机带来的巨大收益

扭蛋机作为当下潮玩行业的一种&#xff0c;深受消费者的喜爱&#xff0c;市场规模不断扩大。扭蛋机在最开始的受众群体是儿童&#xff0c;随着市场的发展&#xff0c;扭蛋商品的创意越来越多&#xff0c;开始推出各类适合成年人的扭蛋商品。 在近几年的时间中&#xff0c;扭蛋…