Spring-@Order注解

一、@Order

注解@Order的作用是定义Spring容器加载Bean的顺序

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
@Documented
public @interface Order {
	/**
	 * 默认最低优先级
	 */
	int value() default Ordered.LOWEST_PRECEDENCE;
}

二、@Order使用

简单使用一下@Order测试效果

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(1)
public class ComponentOne{
    ComponentOne(){
        System.out.println("Component One");
    }
}
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(2)
public class ComponentTwo{
    ComponentTwo(){
        System.out.println("Component Two");
    }
}
@Component
@Order(3)
public class ComponentThree{
    ComponentThree(){
        System.out.println("Component Three");
    }
}

项目启动后执行结果:

Component One
Component Three
Component Two

@Order没生效、还是默认的加载顺序、原因还需研究

三、实现CommandLineRunner接口

实现CommandLineRunner接口,在项目启动后执行,实现功能的代码放在实现的run方法中。

import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(1)
public class ComponentOne implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("Component One");
    }
}
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(2)
public class ComponentTwo implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("Component Two");
    }
}
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(3)
public class ComponentThree implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("Component Three");
    }
}

项目启动后执行结果:

Component One
Component Two
Component Three

@Order根据顺序生效

关于@Order还有问题需要研究

热门文章

暂无图片
编程学习 ·

VS不能使用scanf函数的解决方法

在VS创建一个c++项目之后,即使已经#include<stdio.h>仍然不能scanf,会出现下面的情况解决方法:1、点击项目->项目属性,点开属性页面2、点击C/C++ -> 预处理器 -> 预处理器定义 -> 点击右侧的下拉列表 -> 点击下拉列表里的<编辑>3、在预处理器定…
暂无图片
编程学习 ·

MyBatis 结构拆解

MyBatis 的执行流程大概可以拆分为如下几个部分:初始化配置解析 mybatis-config.xml 文件 根据 mybatis-config.xml 文件中的配置,依次解析 Mapper.xml 文件 将 Mapper.xml 与 接口 通过 xml 文件的 namespace 属性来进行绑定**【重点】**;该篇有介绍 XML 文件和 接口进行绑…
暂无图片
编程学习 ·

【LEETCODE】718.最长重复子数组-动态规划+滑动窗口

题目 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 思路 设数组A长度为n,B长度为m动态规划: 设置动态规划数组dp[n+1][m+1],dp[n][m]=0。 从A[n-1]和B[m-1]开始向前遍历比较,可以得出伪代码: if A[i]==B[j]:dp[i][j]=dp[i+1][j+1]+1; else if …
暂无图片
编程学习 ·

centos 怎么安装 nginx

linux centos 7 安装 nginx 原文来自官网 : http://nginx.org/en/linux_packages.html Installation instructions Before you install nginx for the first time on a new machine, you need to set up the nginx packages repository. Afterward, you can install and updat…
暂无图片
编程学习 ·

Exception 的意义

Exception 的意义 文章目录Exception 的意义引言Exception 的语义自底向上的观点自顶向下的观点结论 引言 为什么程序设计语言要加入 Exception 机制?这个问题的答案或许不是那么显然。 Exception 常见于 “操作过程可能出现意外” 的场景。比如,试图打开文件时发现文件不存在…
暂无图片
编程学习 ·

导入spring源码到idea的完整步骤

导入spring源码到idea的完整步骤1.到github上找到spring-framework代码,然后将代码fork到码云上,步骤地址如下: https://cloud.tencent.com/developer/article/1589675 2.下载gradle,安装gradle(注意idea和gradle对应的版本,楼主使用的是2019.2版本的idea和5.2.1版本的gr…
暂无图片
编程学习 ·

中国互联网热衷造轮子!去哪儿网开源消息中间件QMQ,京东也搞JMQ

中国互联网热衷于“造轮子“!在Github上查看消息队列的时候,那个专栏就透露:京东已推出自己的消息队列产品 JMQ,并且将很快开源问世!之后,我很少留意过 JMQ 的消息。今天偶然之间,看到去哪儿网也搞了一个消息中间件 QMQ。根据去哪网的开发团队透露,QMQ 内部已经使用了 …
暂无图片
编程学习 ·

QT布局与信息和槽

实训第一天知识记录QT编码出现问题解决写代码出问题怎么办计算器编码的问题以及记录三种写法Hello World及注意事项布局的代码实现下一篇 信号,槽,以及connect()方法 QT编码出现问题解决 方法一: 找到工具栏——选项——kits 方法二: 项目中的构建目录 方法三: 右击清楚…
暂无图片
编程学习 ·

5.文件的二进制写入与读取

#把所有pyhon对象转化为二进制形式存放字节流这个过程叫做picking(即存放的意思) #读取的过程:unpicking()#吧一个列表中数据以二进制形式存储 #文件的写入 import picklemy_list=[2,3.14,"小欢欢",[another list]] pick_file=open(my_pk.pkl,wb)#打开 pickle.dump(…
暂无图片
编程学习 ·

G1 GC 全称Garbage-First Garbage Collector 总结

关键描述G1是一种服务器端的垃圾收集器,应用在多处理器和大内存环境中,在实现高吞吐量的同时,尽可能的满足垃圾收集暂停时间的要求,全堆操作(例如全局标记)与应用程序线程并行执行。这样可以防止与堆或活动数据大小成比例的中断。G1收集器的设计目标是取代CMS收集器,它同…
暂无图片
编程学习 ·

Prometheus监控Docker-Swarm集群(二)

Prometheus监控Docker Swarm集群(二)前面我讲解了对于Docker的一些监控知识以及Docker监控开源工具Weave Scope做了一个概述,以及简单安装。 同时也了解了Weave Scope的不足之处,而引出来了cAdvisor配合Prometheus来监控容器,本篇主要是针对Swarm集群的监控详细讲解;Swar…
暂无图片
编程学习 ·

next()与nextLine()区别

next()与nextLine()区别 两种接收方式第一种import java.util.Scanner;public class Demo01 {public static void main(String[] args) {//创建一个扫描器对象,用于按收健盘数据Scanner sc = new Scanner(System.in);System.out.println("使用next方式接收");//为断…
暂无图片
编程学习 ·

哇呼IM——安全通讯

IM即时通讯 即时通讯(IM,即 Instant Messaging)是指能够即时发送和接收互联网消息等的业务。 IM即时通讯可以用来做什么:聊天:qq、微信等 直播:斗鱼直播、抖音 实时位置共享、游戏多人互动等等可以说几乎所有高实时性的应用场景都需要用到IM技术。 四大核心私有部署 独立云服…
暂无图片
编程学习 ·

这个Python脚本,让工作自动向你汇报进度!

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:读芯术 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://t.cn/A6Zvjdun 笔者经常编写Python脚本来进行数据处理、数据…
暂无图片
编程学习 ·

如何做到靠谱—传输层协议 TCP(下)

文章目录TCP 如何做到靠谱?如何实现一个靠谱的协议?顺序问题和丢包问题确认与重发机制流量控制问题拥塞控制问题小结 我们前面说到玄奘西行,要出网关。既然出了网关,那就是在公网上传输数据,公网往往是不可靠的,因而需要很多的机制去保证传输的可靠性,这里面需要恒心,也…
暂无图片
编程学习 ·

2020G1工业锅炉司炉模拟考试题库及G1工业锅炉司炉模拟考试系统

题库来源:安全生产模拟考试一点通公众号小程序2020G1工业锅炉司炉模拟考试题库及G1工业锅炉司炉模拟考试系统,包含G1工业锅炉司炉模拟考试题库答案解析及G1工业锅炉司炉模拟考试系统练习。由安全生产模拟考试一点通公众号结合国家G1工业锅炉司炉考试最新大纲及G1工业锅炉司炉…
暂无图片
编程学习 ·

git提示error setting certificate verify locations错误解决

git version 2.14.2git 提示 error setting certificate verify locations 错误 一般是因为没有找到ssl证书位置导致的两种方法解决:1. 重新配置证书的位置windows证书一般在安装的git目录下的 mingw64/ssl/certs/ca-bundle.crt 目录配置证书的位置 git config --system htt…
暂无图片
编程学习 ·

分布式理论:BASE理论

1. CAP的3选2伪命题实际上,不是为了P(分区容错性),必须在C(一致性)和A(可用性)之间任选其一。分区的情况很少出现,CAP在大多时间能够同时满足C和A。对于分区存在或者探知其影响的情况下,需要提供一种预备策略做出处理:探知分区的发生;进入显示的分区模式,限制某些…
暂无图片
编程学习 ·

canvas文字换行

记录:canvas文本设置具体行数以及在限定宽度下的文字大小自适应。 function drawtext(ctx,t,x,y,w,row,f=30,color=#ffffff){//参数说明//ctx:canvas的 2d 对象,t:绘制的文字,x,y:文字坐标,w:文字最大宽度,row:文字设定行数,f文字设定大小,color:文字颜色let chr =t.…
暂无图片
编程学习 ·

综合教务系统项目

综合教务系统项目学生板块分数查询学生选课教师板块录入成绩教师选课管理员板块角色管理编辑用户资料创建新用户创建课程课程管理公共板块修改密码角色栏查询语句学生板块 分数查询<%@ Page Title="" Language="C#" MasterPageFile="~/EduManage.m…