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

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)文章

最新評論