亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring中@Primary注解的作用詳解

 更新時間:2023年10月11日 11:42:32   作者:五更琉璃V  
這篇文章主要介紹了Spring中@Primary注解的作用詳解,@Primary 注解是Spring框架中的一個注解,用于標(biāo)識一個Bean作為默認(rèn)的實現(xiàn)類,當(dāng)存在多個實現(xiàn)類時,通過使用@Primary注解,可以指定其中一個作為默認(rèn)的實現(xiàn)類,以便在注入時自動選擇該實現(xiàn)類,需要的朋友可以參考下

@Primary注解作用詳解

此注解時為了標(biāo)識哪個Bean是默認(rèn)的Bean

  @Bean
	  public AMapper aMapper1(AConfig aConfig) {
	    return new AMapperImpl1(aConfig);
	  }
	  @Bean
	  @Primary
	  public AMapper aMapper2(AConfig aConfig) {
	    return new AMapperImpl2(aConfig);
	  }

上述代碼,當(dāng)存在多個相同類型的Bean注入時,加上@Primary注解,來確定默認(rèn)的實現(xiàn)標(biāo)識。

案例

public interface Worker {
	    public String work();
	}
	@Component
	public class Singer implements Worker {
	    @Override
	    public String work() {
	        return "歌手的工作是唱歌";
	    }
	}
	@Component
	public class Doctor implements Worker {
	    @Override
	    public String work() {
	        return "醫(yī)生工作是治病";
	    }
	}
	// 啟動,調(diào)用接口
	@SpringBootApplication
	@RestController
	public class SimpleWebTestApplication {
	    @Autowired
	    private Worker worker;
	    @RequestMapping("/info")
	    public String getInfo(){
	        return worker.work();
	    }
	    public static void main(String[] args) {
	        SpringApplication.run(SimpleWebTestApplication.class, args);
	    }
	}

上述情況下,一個接口多個實現(xiàn),并且通過@Autowired注入 Worker, 由于@Autowired是通過ByType的形式,來給指定的字段和方法來注入所需的外部資源, 但由于此類有多個實現(xiàn),Spring不知道注入哪個實現(xiàn),所以在啟動的時候會拋出異常。

Consider marking one of the beans as @Primary,
updating the consumer to accept multiple beans,
or using @Qualifier to identify the bean that should be consumed。

當(dāng)給指定的組件添加@primary后,默認(rèn)會注入@Primary的配置組件。

@Component
@Primary
public class Doctor implements Worker {
    @Override
    public String work() {
        return "醫(yī)生工作是治病";
    }
}

給Doctor 加上@Primary,則默認(rèn)注入的就是 Doctor 的實現(xiàn)。 瀏覽器訪問:localhost:8080/info

在這里插入圖片描述

到此這篇關(guān)于Spring中@Primary注解的作用詳解的文章就介紹到這了,更多相關(guān)@Primary注解的作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring使用redis操作key-value的示例代碼

    spring使用redis操作key-value的示例代碼

    這篇文章主要介紹了spring使用redis操作key-value的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java中 URL實現(xiàn)斷點下載

    Java中 URL實現(xiàn)斷點下載

    Java中 URL實現(xiàn)斷點下載,需要的朋友可以參考一下
    2013-03-03
  • SpringBoot利用@Validated注解優(yōu)雅實現(xiàn)參數(shù)校驗

    SpringBoot利用@Validated注解優(yōu)雅實現(xiàn)參數(shù)校驗

    在開發(fā) Web 應(yīng)用時,用戶輸入的合法性校驗是保障系統(tǒng)穩(wěn)定性的基礎(chǔ),?Spring Boot 的 @Validated 注解 提供了一種更優(yōu)雅的解決方案,下面就跟隨小編一起學(xué)習(xí)一下吧
    2025-04-04
  • java能寫爬蟲程序嗎

    java能寫爬蟲程序嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于java是否能寫爬蟲程序的一篇文章,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • 在spring中使用自定義注解注冊監(jiān)聽器的方法

    在spring中使用自定義注解注冊監(jiān)聽器的方法

    本篇文章主要介紹了在spring中使用自定義注解注冊監(jiān)聽器的方法,本文就是在分析監(jiān)聽器回調(diào)原理的基礎(chǔ)上,在spring環(huán)境中使用自定義的注解實現(xiàn)一個監(jiān)聽器。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Java實現(xiàn)AOP面向切面編程的實例教程

    Java實現(xiàn)AOP面向切面編程的實例教程

    這篇文章主要介紹了Java實現(xiàn)AOP面向切面編程的實例教程,通常Java中的AOP都是利用Spring框架中造好的輪子來開發(fā),而本文則關(guān)注于Java本身AOP的設(shè)計模式實現(xiàn),需要的朋友可以參考下
    2016-04-04
  • java讀取大文件簡單實例

    java讀取大文件簡單實例

    這篇文章主要介紹了java讀取大文件簡單實例,有需要的朋友可以參考一下
    2013-12-12
  • JFormDesigner(IDEA)下載方法

    JFormDesigner(IDEA)下載方法

    JFormDesigner是一種Java Swing GUI設(shè)計工具,可快速創(chuàng)建用戶界面,支持多種布局管理器,如GridBagLayout、SpringLayout等,本文給大家介紹JFormDesigner(IDEA)下載方法,感興趣的朋友跟隨小編一起看看吧
    2023-12-12
  • 關(guān)于mybatis的一級緩存和二級緩存的那些事兒

    關(guān)于mybatis的一級緩存和二級緩存的那些事兒

    MyBatis自帶的緩存有一級緩存和二級緩存,今天我們就來學(xué)習(xí)一下,文中有非常詳細(xì)的總結(jié),對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • java?poi之XWPFDocument如何讀取word內(nèi)容并創(chuàng)建新的word

    java?poi之XWPFDocument如何讀取word內(nèi)容并創(chuàng)建新的word

    這篇文章主要介紹了java?poi之XWPFDocument如何讀取word內(nèi)容并創(chuàng)建新的word問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評論