注入多重實作方式

注入多重實作方式可讓你提取最合適的方法來執行你的工作。

public interface MyService {

    void sayHelloTo(CommandSender sender);

    void sayGoodBye(CommandSender sender);

}
public class MyServiceA implements MyService {


    @Override
    public void sayHelloTo(CommandSender sender) {
        sender.sendMessage("hello world A!!!");
    }

    @Override
    public void sayGoodBye(CommandSender sender) {
        sender.sendMessage("good bye A!!!");
    }
}
public class MyServiceB implements MyService{

    @Override
    public void sayHelloTo(CommandSender sender) {
        sender.sendMessage("hello world B!!!");
    }

    @Override
    public void sayGoodBye(CommandSender sender) {
        sender.sendMessage("good bye B!!!");
    }

}

註冊

使用,以指令為例

當你使用 /service hello true 的時候,將使用 ServiceB 來執行,當你輸入 /service hello false 或者 /service hello 的時候,將使用 ServiceA 來執行

使用場景範例

以下將列出使用多重實作方式的使用範例。

映射物件如下

定義儲存服務

實作 yaml 儲存服務

實作 mysql 儲存服務

註冊如下

在某個單例的使用方式

不使用key的狀況下注入多重實作

以 LogService 為例

創建多重實作方式。

在主類註冊

使用範例如下

最后更新于