激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

2022-01-04 00:41總是幸福的老豌豆 Java教程

這篇文章主要介紹了SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.zcw.runner;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
 * @Classname BootApplicationRunner
 * @Description TODO
 * @Date 2020/3/6 13:06
 * @Created by zhaocunwei
 */
@Order(2)
@Slf4j
@Component
public class BootApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("This is BootApplicationRunner ...");
    }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.zcw.runner;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
 * @Classname BootCommandLineRunner
 * @Description TODO
 * @Date 2020/3/6 13:09
 * @Created by zhaocunwei
 */
@Order(1)
@Slf4j
@Component
public class BootCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        log.info("This is BootCommandLineRunner ...");
    }
}

基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

spring @Order標(biāo)記

@Order標(biāo)記定義了組件的加載順序

@Order標(biāo)記從spring 2.0出現(xiàn),但是在spring 4.0之前,@Order標(biāo)記只支持AspectJ的切面排序。spring 4.0對(duì)@Order做了增強(qiáng),它開(kāi)始支持對(duì)裝載在諸如Lists和Arrays容器中的自動(dòng)包裝(auto-wired)組件的排序。

在spring內(nèi)部,對(duì)基于spring xml的應(yīng)用,spring使用OrderComparator類來(lái)實(shí)現(xiàn)排序。對(duì)基于注解的應(yīng)用,spring采用AnnotationAwareOrderComparator來(lái)實(shí)現(xiàn)排序。

@Order 標(biāo)記定義如下:

?
1
2
3
4
@Retention(value=RUNTIME)
@Target(value={TYPE,METHOD,FIELD})
@Documented
public @interface Order

這個(gè)標(biāo)記包含一個(gè)value屬性。屬性接受整形值。如:1,2 等等。值越小擁有越高的優(yōu)先級(jí)。

下面讓我們來(lái)看一個(gè)

使用spring 3.x 和spring 4.x 的例子

Ranks.java

?
1
2
3
package com.javapapers.spring3.autowire.collection;
public interface Ranks { 
}

RankOne.java

?
1
2
3
4
5
6
7
8
9
10
11
package com.javapapers.spring3.autowire.collection;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
public class RankOne implements Ranks{
 private String rank = "RankOne";
 
 public String toString(){
  return this.rank;
 }
}

RankTwo.java

?
1
2
3
4
5
6
7
8
9
10
11
package com.javapapers.spring3.autowire.collection;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
public class RankTwo implements Ranks{
 private String rank = "RankTwo";
 
 public String toString(){
  return this.rank;
 }
}

RankThree.java

?
1
2
3
4
5
6
7
8
9
10
11
package com.javapapers.spring3.autowire.collection;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
public class RankThree implements Ranks{
 private String rank = "RankThree";
 
 public String toString(){
  return this.rank;
 }
}

Results.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Component to hold student ranks in a collection as shown below.
package com.javapapers.spring3.autowire.collection;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Results {
  @Autowired
  private List ranks ;
  
  @Override
  public String toString(){
   return ranks.toString();
  }
}

beans.xml

?
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context.xsd">
  <context:annotation-config />
  <context:component-scan base-package="com.javapapers.spring3"/>
</beans>

RanksClient.java

?
1
2
3
4
5
6
7
8
9
10
package com.javapapers.spring3.autowire.collection;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class RanksClient {
 public static void main(String[] args) {
  ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
  Results results = (Results)context.getBean("results");
  System.out.println(results);
 }
}

輸出結(jié)果:

[RankOne, RankThree, RankTwo]

從結(jié)果可以看出,結(jié)果是沒(méi)有順序的。因?yàn)閟pring 3.x不支持對(duì)自動(dòng)包裝組件的排序。

接下來(lái),我升級(jí)spring的版本至4.x, 并對(duì)RanOne,RankTwo和RankThree加上order標(biāo)記,值做相應(yīng)的調(diào)整。

?
1
2
3
4
5
6
7
8
@Component
@Order(1)
public class RankOne implements Ranks{
private String rank = "RankOne";   
    public String toString(){
        return this.rank;
    }
}

輸出結(jié)果如下:

[RankOne, RankTwo, RankThree]

參考文章: http://javapapers.com/spring/spring-order-annotation/

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://zhaocunwei.blog.csdn.net/article/details/104694000

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
1151
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产精品免费一区二区三区都可以 | 国产精品午夜未成人免费观看 | 国产精品一区视频 | 亚洲二区免费 | 秋霞影院一二三区 | 美女视频在线观看黄 | 亚洲午夜免费电影 | 国产精品久久久久久久久久久久午夜 | 国产亚洲精品久久久久久网站 | 国产亚洲自拍一区 | 性 毛片| 天堂精品久久 | 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | 黄色毛片18 | 91看片成人 | 深夜免费视频 | 成人资源在线 | 国产精品久久久av | 黄色录像日本 | 中文在线免费观看 | 日韩剧情片 | 欧美成人激情 | 国产成人高潮免费观看精品 | av手机在线电影 | 国内外一级毛片 | 久久久久免费电影 | 午夜视 | 日韩av在线网址 | 成人久久久久久久久久 | 久久精品综合视频 | 免费观看一级 | 一本一道久久久a久久久精品91 | 耽美男男肉文 | av成人一区二区 | 亚洲视频在线视频 | 免费黄色小网站 | 国产无遮挡一级毛片 | 日韩精品一区二区三区中文 | 久久久一区二区精品 | 精品91av| 成人在线视频免费播放 |