getApplicationStartup method
Defines a contract for components that are aware of and can interact with
an ApplicationStartup
strategy.
An ApplicationStartup
provides hooks or strategies to monitor and measure
different stages of the application startup lifecycle.
Implementations of ApplicationStartupAware
allow the framework (or user code)
to inject an ApplicationStartup
instance so that components can report or
adjust their startup behavior accordingly.
Example
class LoggingStartupAware implements ApplicationStartupAware {
late ApplicationStartup _startup;
@override
ApplicationStartup getApplicationStartup() => _startup;
@override
void setApplicationStartup(ApplicationStartup applicationStartup) {
_startup = applicationStartup;
}
void startComponent() {
final step = _startup.start("Initialize component");
// Perform initialization work...
step.end();
}
}
void main() {
final aware = LoggingStartupAware();
final startup = DefaultApplicationStartup();
aware.setApplicationStartup(startup);
aware.startComponent();
}
Return the ApplicationStartup
strategy currently in use.
Implementations should always return the same instance that was previously set via setApplicationStartup.
Example
final startup = component.getApplicationStartup();
print("Using startup: $startup");
Implementation
@override
ApplicationStartup getApplicationStartup() {
if(_applicationStartup == null) {
throw IllegalStateException("Cannot access application startup since it has not been initialized yet.");
}
return _applicationStartup!;
}