initializeAppContainer method

void initializeAppContainer(
  1. BuiltinReflectableConfiguration builtinRefConfig
)

Start point.

Implementation

void initializeAppContainer(BuiltinReflectableConfiguration builtinRefConfig) {
  _builtinRefConfig = builtinRefConfig;
  _builtinDefinitions.addAll(builtinRefConfig.builtinDefinitions);
  _builtinReflectableMetadataList.addAll(builtinRefConfig.builtinReflectableMetadataList);

  /// start parse
  _logger.i('Initialize application container start');

  /// parse and save mirror definition
  _mirrorDefinitions.addAll(_doParseReflectionMirrorDefinitions());
  _magicApplicationContainerInitializeLog(_mirrorDefinitions);

  /// process instance configuration class firstly
  _withoutMirrorDefinitionHolders.addAll(_parseWithoutMirrorDefinitionHolders());
  _magicApplicationContainerInitializeLog(_withoutMirrorDefinitionHolders);

  /// process mirror definition instance class and dependency injection
  _mirrorDefinitionHolders.addAll(_doCreateMirrorDefinitionHolders());
  _magicApplicationContainerInitializeLog(_mirrorDefinitionHolders);

  /// process circular dependency injection
  _doCircularDependencyInjection();
  _magicApplicationContainerInitializeLog(_mirrorDefinitionHolders, afterCircularDependencyInjection: true);

  /// after dependency injection
  _doProcessInstanceAfterPropertiesSet(_mirrorDefinitionHolders.values.toList());

  /// end parse
  _logger.i('Initialize application container end');
}