public interface IService {
void doSomething(CommandSender sender);
}
public class IServiceImpl implements IService{
@Inject
private TestConfig config; // 別忘了任何註冊單例/服務均可使用依賴注入!
@Override
public void doSomething(CommandSender sender) {
sender.sendMessage(config.name);
}
}
@Override
public void bindServices(ServiceCollection serviceCollection) {
serviceCollection.bindService(IService.class, IServiceImpl.class);
}
@Commander(
name = "service",
description = "service command"
)
public class TestServiceCommand implements CommandNode {
@Inject
private IService service;
@Override
public void execute(CommandSender commandSender) {
service.doSomething(commandSender);
}
}
目前所有被註冊的服務/實例全都默認為 單例。如果你不想全部都設置為單例,你可到 config.yml
將 defaultSingleton
設置為 false, 然後單獨地在你欲單例的 實例 class 上標註 @Singleton