# DependsOn class

A Jetleaf annotation that declares explicit dependencies between pods.

By default, Jetleaf resolves dependencies automatically based on injection points. Use `@DependsOn` when you need to enforce initialization order or guarantee that certain infrastructure pods are created before the annotated pod.

### Key Features:

- Ensures initialization order in complex graphs.
- Can declare multiple dependencies.
- Works on both classes and methods.

### Example:

    @Component()
    @DependsOn(["emailNotifier", "databaseService"])
    class ApplicationService {
      // This service will be initialized after DatabaseService and CacheService
    }

### Method-level Example:

    class Config {
      @Pod()
      @DependsOn(["connectionPool"])
      DatabaseClient databaseClient() => DatabaseClient();
    }

Inheritance
  - Object
  - ReflectableAnnotation
  - DependsOn
Mixed-in types
  - EqualsAndHashCode
Annotations
  - @Target({TargetKind.classType, TargetKind.method})

## Constructors

DependsOn.new(List<String> value)
  A Jetleaf annotation that declares explicit dependencies between pods.
  const

## Properties

annotationType → Type
  Returns the annotation _type of this annotation.
  no setter override
hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
value → List<String>
  The list of String pods that must be created first.
  final

## Methods

equalizedProperties() → List<Object?>
  Mixin-style contract for value-based equality, `hashCode`, and `toString`.
  override
equals(Object other) → bool
  Checks whether the given object is logically equivalent to this annotation.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  Returns a string representation of this annotation.
  override

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited