service_manager 0.1.2 service_manager: ^0.1.2 copied to clipboard
A service manager implementation for bootstraping dependency injection
Service Manager #
A service manager to use as a dependency injection bootstrapper.
Example #
services/config_factory.dart
import 'dart:async';
import 'package:service_manager/service_manager.dart';
class ConfigFactory extends ServiceFactory {
Future<Map> make(ServiceManager serviceManager) {
var completer = new Completer();
completer.complete({
"zookeeper": [
{
"host": "zookeeper001-prod",
"prot": 2181
},
{
"host": "zookeeper002-prod",
"prot": 2181
},
{
"host": "zookeeper003-prod",
"prot": 2181
}
]
});
return completer.future;
}
}
services/zookeeper_factory.dart (depends on the config service)
import 'dart:async';
import 'package:service_manager/service_manager.dart';
class ZookeeperFactory extends ServiceFactory {
Future<Map> make(ServiceManager serviceManager) {
return serviceManager.get("config").then((config) {
return config["zookeeper"];
});
}
}
main.dart
import 'package:service_manager/service_manager.dart';
import './services/config_factory.dart';
import './services/zookeeper_factory.dart';
main() {
var serviceManager = new ServiceManager({
"config": new ConfigFactory(),
"zookeeper": new ZookeeperFactory()
});
serviceManager.get("zookeeper").then((zookeeper) {
print(zookeeper);
});
}