ConditionalOnMissingPod constructor

const ConditionalOnMissingPod({
  1. List<ClassType<Object>> types = const [],
  2. List<String> names = const [],
  3. List<ClassType<Object>> ignoredTypes = const [],
})

The ConditionalOnMissingPod annotation in Jetleaf allows developers to conditionally process a class or method only when certain pods are not present in the application context.

This is particularly useful for providing fallback configurations or alternative beans/pods when expected ones are absent.

Key Features:

  • Ensures a pod is only loaded if another pod type or name is missing.
  • Supports ignoring specific annotations when determining pod presence.
  • Supports ignoring entire pod types to avoid conflicts with infrastructure.

Usage Examples:

// Only load an embedded database when no DataSource is present
@ConditionalOnMissingPod(types: [ClassType<DataSource>()])
class EmbeddedDatabaseConfig {}

// Provide a fallback service if a specific pod name is missing
@ConditionalOnMissingPod(name: ['myCustomService'])
class FallbackServiceConfig {}

// Ignore infrastructure pods while checking for missing dependencies
@ConditionalOnMissingPod(
  types: [ClassType<MyService>()],
  ignoredTypes: [ClassType<DataSource>()],
)
class AlternativeServiceConfig {}

This ensures Jetleaf applications remain flexible by enabling conditional fallbacks and context-aware configuration.

Implementation

const ConditionalOnMissingPod({
  this.types = const [],
  this.names = const [],
  this.ignoredTypes = const [],
});