springBootStarterFlutterAutoConfiguration top-level property
The beans the starter adds to every Flutter application:
- support for
asset:locations, so@Value('asset:...')injects Flutter assets as resources; - the advice that calls
notifyListeners()for@NotifyListenersand@ChangeNotifierComponentbeans, and the one that tells Spring widgets which of those beans theirbuildread; - the app's themes from
spring.flutter.theme.*(SpringThemes) and the choice of the theme shown (ThemeSelection).
Logins and secrets (the platform's secure storage, the login window)
are spring_boot_starter_flutter_security's.
Implementation
@AutoConfigurationModule()
final BeanModule springBootStarterFlutterAutoConfiguration = BeanModule(
'springBootStarterFlutterAutoConfiguration',
[
BeanDefinition<AssetProtocolResolverRegistrar>(
name: 'assetProtocolResolverRegistrar',
types: const [
AssetProtocolResolverRegistrar,
BeanFactoryPostProcessor,
ApplicationContextAware,
],
source: _source,
create: (_) => AssetProtocolResolverRegistrar(),
),
BeanDefinition<DefaultPointcutAdvisor>(
name: 'notifyListenersAdvisor',
types: const [DefaultPointcutAdvisor, PointcutAdvisor, Advisor, Ordered],
source: _source,
create: (_) => DefaultPointcutAdvisor(
const NotifyListenersPointcut(),
const NotifyListenersInterceptor(),
),
),
BeanDefinition<DefaultPointcutAdvisor>(
name: 'beanReadsAdvisor',
types: const [DefaultPointcutAdvisor, PointcutAdvisor, Advisor, Ordered],
source: _source,
create: (_) => DefaultPointcutAdvisor(
const BeanReadsPointcut(),
const BeanReadsInterceptor(),
),
),
BeanDefinition<SpringThemes>(
name: 'springThemes',
types: const [SpringThemes, ChangeNotifier, Listenable],
source: _source,
create: (r) => SpringThemes.fromEnvironment(
r.dependency<ConfigurableEnvironment>(),
customizers: r.optionalDependencyList<ThemeCustomizer>() ?? const [],
cupertinoCustomizers:
r.optionalDependencyList<CupertinoThemeCustomizer>() ?? const [],
light: r.optionalDependency<ThemeData>(qualifier: 'theme'),
dark: r.optionalDependency<ThemeData>(qualifier: 'darkTheme'),
cupertino: r.optionalDependency<CupertinoThemeData>(),
),
),
BeanDefinition<ThemeSelection>(
name: 'themeSelection',
types: const [ThemeSelection, ChangeNotifier, Listenable],
source: _source,
create: (r) => ThemeSelection(r.dependency<SpringThemes>()),
),
],
);