Files
easy_dart_module/lib/EasyDartModule.dart
2025-01-07 16:50:57 +08:00

69 lines
2.4 KiB
Dart

library EasyDartModule;
import 'package:EasyDartModule/base/database/DataBase.dart';
import 'package:EasyDartModule/base/database/impl/MongoDb.dart';
import 'package:EasyDartModule/base/discovery/Discovery.dart';
import 'package:EasyDartModule/base/discovery/impl/NacosDiscovery.dart';
import 'package:EasyDartModule/base/http/TraceDio.dart';
import 'package:EasyDartModule/base/logger/Logger.dart';
import 'package:EasyDartModule/base/logger/impl/LokiLogger.dart';
import 'package:EasyDartModule/base/mqtt/mqtt.dart';
import 'package:EasyDartModule/base/redis/redis.dart';
import 'package:EasyDartModule/base/storage/Storage.dart';
import 'package:EasyDartModule/base/storage/impl/MinIoStorage.dart';
import 'package:EasyDartModule/base/webserver/WebServer.dart';
import 'package:EasyDartModule/base/webserver/impl/ShelfWebServer.dart';
export 'package:shelf/shelf.dart';
export 'package:mongo_dart/mongo_dart.dart';
class EasyDartModule {
static Discovery get discovery => Discovery.getInstance();
static DataBase get dataBase => DataBase.getInstance();
static WebServer get webServer => WebServer.getInstance();
static Logger get logger => Logger.getInstance();
static TraceDio get dio => TraceDio.getInstance();
static Mqtt get mqtt => Mqtt.getInstance();
static Storage get storage => Storage.getInstance();
static Redis get redis => Redis.getInstance();
static bool init(
{DiscoveryConfig? discoveryConfig,
DataBaseConfig? dataBaseConfig,
LoggerConfig? loggerConfig,
MqttConfig? mqttConfig,
StorageConfig? storageConfig,
RedisConfig? redisConfig}) {
if (discoveryConfig != null) {
//nacos注册配置中心
Discovery.setInstance(NacosDiscovery(discoveryConfig));
}
if (dataBaseConfig != null) {
//mongo数据库
DataBase.setInstance(MongoDb(dataBaseConfig));
}
if (mqttConfig != null) {
//mqtt
Mqtt.setInstance(Mqtt(mqttConfig));
mqtt.connect();
}
if (storageConfig != null) {
//s3存储
Storage.setInstance(MinioStorage(storageConfig));
}
if (redisConfig != null) {
Redis.setInstance(Redis(redisConfig));
redis.connect();
}
if (loggerConfig != null) {
//初始化日志
Logger.setInstance(LokiLogger(loggerConfig));
//web服务器
WebServer.setInstance(ShelfWebServer(logger));
//Dio组件
TraceDio.setInstance(TraceDio(logger));
}
return true;
}
}