欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot根據(jù)配置文件動態(tài)注入接口實現(xiàn)類詳解

 更新時間:2023年10月25日 10:27:56   作者:小諸葛的博客  
這篇文章主要介紹了Springboot根據(jù)配置文件動態(tài)注入接口實現(xiàn)類詳解,具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下,如有錯誤或未考慮完全的地方,望不吝賜教

Springboot動態(tài)注入接口實現(xiàn)類

最近接到一個需求,產(chǎn)品的用戶模塊要接入第三方用戶系統(tǒng)(skyview),但是又不能影響原有的登錄模塊,并且需要通過配置文件來決定使用平臺的用戶系統(tǒng)還是第三方用戶系統(tǒng)。

原先的用戶模塊已經(jīng)開發(fā)好了,接口也設(shè)計好了,所以只需要再開發(fā)第三方用戶系統(tǒng)的接口實現(xiàn)就好了。

用戶接口:

public interface UserService {
    String login();
}

平臺用戶接口實現(xiàn):

@Service("UserServiceImpl")
public class UserServiceImpl implements UserService {
 
    @Override
    public String login() {
        return "zeus";
    }
}

第三方平臺接口實現(xiàn):

@Service("skyviewUserServiceImpl")
public class SkyviewUserServiceImpl implements UserService {
 
    @Override
    public String login() {
        return "skyview";
    }
 
}

功能已經(jīng)開發(fā)好了,問題是如何在Controller層動態(tài)決定使用那個實現(xiàn)類?

通過@Qualifier和@Resource都可以指定接口的實現(xiàn)類,不同的是,@Qualifier注解的參數(shù)必須是常量,而@Resource注解的參數(shù)可以加入變量,變量可以在配置文件中配置。

@RequestMapping("/user")
@RestController
public class UserController {
 
    @Resource(name=  "${system.usercenter}UserServiceImpl")
    private UserService userService;
 
    @GetMapping("/login")
    public String login(){
        return userService.login();
    }
 
}

application.yaml

server:
  port: 8081
 
system:
  usercenter: skyview

到此這篇關(guān)于Springboot根據(jù)配置文件動態(tài)注入接口實現(xiàn)類詳解的文章就介紹到這了,更多相關(guān)Springboot動態(tài)注入接口實現(xiàn)類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java線程休眠之sleep方法詳解

    Java線程休眠之sleep方法詳解

    這篇文章主要介紹了Java線程休眠之sleep方法詳解,Thread?類中有一個靜態(tài)方法的sleep方法,當該線程調(diào)用sleep方法后,就會暫時讓CPU的調(diào)度權(quán),但是監(jiān)視器資源比如鎖并不會釋放出去,需要的朋友可以參考下
    2024-01-01
  • java解析dbf之通過javadbf包生成和讀取dbf文件

    java解析dbf之通過javadbf包生成和讀取dbf文件

    這篇文章主要介紹了java通過javadbf讀取和生成DBF文件的方法,大家參考使用吧
    2014-01-01
  • Java實現(xiàn)ECDSA簽名算法

    Java實現(xiàn)ECDSA簽名算法

    這篇文章主要介紹了Java實現(xiàn)ECDSA簽名算法,幫助大家更好得利用Java實現(xiàn)機器學習算法,感興趣的朋友可以了解下
    2020-10-10
  • Java?Stream流的常見生成和操作方法總結(jié)

    Java?Stream流的常見生成和操作方法總結(jié)

    從Java1.8開始提出了Stream流的概念,本文將通過示例為大家詳細講解一下Stream流的常見生成和操作方法,感興趣的小伙伴可以了解一下
    2022-09-09
  • 使用Java實現(xiàn)Redis限流的方法

    使用Java實現(xiàn)Redis限流的方法

    限流的作用是防止某個段時間段內(nèi)的請求數(shù)過多,造成模塊因高并發(fā)而不可用。這篇文章給大家介紹使用Java實現(xiàn)Redis限流的相關(guān)知識,一起看看吧
    2021-09-09
  • Java Scanner 類的使用小結(jié)

    Java Scanner 類的使用小結(jié)

    在筆試編程過程中,關(guān)于數(shù)據(jù)的讀取如果迷迷糊糊,那后來的編程即使想法很對,實現(xiàn)很好,也是徒勞,于是在這里認真總結(jié)了Java Scanner 類的使用,需要的朋友可以參考下
    2018-10-10
  • Java實現(xiàn)并查集示例詳解

    Java實現(xiàn)并查集示例詳解

    這篇文章主要通過一個題目示例為大家詳細介紹Java如何實現(xiàn)并查集,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Gradle構(gòu)建基本的Web項目結(jié)構(gòu)

    Gradle構(gòu)建基本的Web項目結(jié)構(gòu)

    這篇文章主要為大家介紹了Gradle創(chuàng)建Web項目基本的框架結(jié)構(gòu)搭建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • java占位符替換五種方式小結(jié)

    java占位符替換五種方式小結(jié)

    我們經(jīng)常會遇到需要替換字符串中的占位符的情況,本文主要介紹了java占位符替換五種方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • java實現(xiàn)折半排序算法

    java實現(xiàn)折半排序算法

    折半插入排序法,又稱二分插入排序法,是直接插入排序法的改良版,也需要執(zhí)行i-1趟插入,不同之處在于,第i趟插入,先找出第i+1個元素應(yīng)該插入的的位置,假定前i個數(shù)據(jù)是已經(jīng)處于有序狀態(tài)。
    2015-04-04

最新評論