# JetLeafApplication class

A meta-annotation in Jetleaf used to bootstrap and configure the root application class.

When applied to a class, this annotation signals Jetleaf to:

- Perform component scanning via ComponentScan.
- Apply the Configuration with identifier `jetleaf_application`.
- Import additional selectors, such as `ApplicationImportSelector`.

This annotation plays a central role in defining the application entry point and enabling auto-configuration features.

### Properties

- ENABLE_AUTO_CONFIGURATION_PROPERTY: Toggle to enable auto-configuration.
- DISABLE_AUTO_CONFIGURATION_PROPERTY: Toggle to disable auto-configuration.

### Example

    @JetLeafApplication()
    class MyApplication {
      static void main() {
        // Launch the application
        JetLeaf.run(MyApplication);
      }
    }

Inheritance
  - Object
  - ReflectableAnnotation
  - JetLeafApplication
Annotations
  - @EnableAutoConfiguration()
  - @Target({TargetKind.classType})
  - @Configuration("jetleaf_application")
  - @Import([ClassType<ApplicationImportSelector>(package: PackageNames.MAIN)])
  - @ComponentScan(includeFilters: [ComponentScanFilter(type: FilterType.CUSTOM, typeFilter: ApplicationTypeFilter())])

## Constructors

JetLeafApplication.new()
  const

## Properties

annotationType → Type
  Returns the runtime Type of this annotation, allowing Jetleaf's reflection system to recognize and process it.
  no setter override
hashCode → int
  Returns a hash code consistent with equality definition.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

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.
  inherited

## Operators

operator ==(Object other) → bool
  Checks if this annotation is equal to another object.
  inherited

## Constants

DISABLE_AUTO_CONFIGURATION_PROPERTY → const String
  Property key used to disable auto-configuration.
ENABLE_AUTO_CONFIGURATION_PROPERTY → const String
  Property key used to enable auto-configuration.