注入多重實作方式
注入多重實作方式可讓你提取最合適的方法來執行你的工作。
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 為例
創建多重實作方式。
在主類註冊
使用範例如下
最后更新于