public class DefaultApplicationContext extends DefaultBeanContext implements ApplicationContext
ApplicationContext interface.initializing, LOG, LOG_LIFECYCLE, running, terminatingEMPTYNO_OPDEFAULT| Constructor and Description |
|---|
DefaultApplicationContext(ApplicationContextConfiguration configuration)
Construct a new ApplicationContext for the given environment name and classloader.
|
DefaultApplicationContext(ClassPathResourceLoader resourceLoader,
String... environmentNames)
Construct a new ApplicationContext for the given environment name and classloader.
|
DefaultApplicationContext(String... environmentNames)
Construct a new ApplicationContext for the given environment name.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsProperties(String name)
Whether the given property or any nested properties exist for the key given key within this resolver.
|
boolean |
containsProperty(String name)
Whether the given property is contained within this resolver.
|
protected ConversionService |
createConversionService()
Creates the default conversion service.
|
protected Environment |
createEnvironment(ApplicationContextConfiguration configuration)
Creates the default environment for the given environment name.
|
protected <T> Collection<BeanDefinition<T>> |
findBeanCandidates(BeanResolutionContext resolutionContext,
Argument<T> beanType,
BeanDefinition<?> filter,
boolean filterProxied)
Find bean candidates for the given type.
|
protected <T> Collection<BeanDefinition<T>> |
findBeanCandidates(BeanResolutionContext resolutionContext,
Argument<T> beanType,
boolean filterProxied,
Predicate<BeanDefinition<T>> predicate)
Find bean candidates for the given type.
|
protected <T> BeanDefinition<T> |
findConcreteCandidate(Class<T> beanType,
Qualifier<T> qualifier,
Collection<BeanDefinition<T>> candidates)
Fall back method to attempt to find a candidate for the given definitions.
|
ConversionService<?> |
getConversionService() |
Environment |
getEnvironment() |
Map<String,Object> |
getProperties(String name,
StringConvention keyFormat)
Return all the properties under the given key.
|
<T> Optional<T> |
getProperty(String name,
ArgumentConversionContext<T> conversionContext)
Resolve the given property for the given name, type and generic type arguments.
|
Collection<String> |
getPropertyEntries(String name)
Returns a collection of properties entries under the given key.
|
protected void |
initializeContext(List<BeanDefinitionReference> contextScopeBeans,
List<BeanDefinitionReference> processedBeans,
List<BeanDefinitionReference> parallelBeans)
Initialize the context with the given
Context scope beans. |
protected void |
initializeTypeConverters(BeanContext beanContext) |
protected void |
registerConfiguration(BeanConfiguration configuration)
Registers an active configuration.
|
<T> ApplicationContext |
registerSingleton(Class<T> type,
T singleton,
Qualifier<T> qualifier,
boolean inject)
Registers a new singleton bean at runtime.
|
Optional<String> |
resolvePlaceholders(String str)
Resolve the placeholders and return an Optional String if it was possible to resolve them.
|
String |
resolveRequiredPlaceholders(String str)
Resolve the placeholders and return an Optional String if it was possible to resolve them.
|
ApplicationContext |
start()
The start method will read all bean definition classes found on the classpath and initialize any pre-required
state.
|
protected void |
startEnvironment()
Start the environment.
|
ApplicationContext |
stop()
The close method will shut down the context calling
PreDestroy hooks on loaded
singletons. |
protected <T> Collection<BeanDefinition<T>> |
transformIterables(BeanResolutionContext resolutionContext,
Collection<BeanDefinition<T>> candidates,
boolean filterProxied)
Method that transforms iterable candidates if possible.
|
containsBean, containsBean, createBean, createBean, createBean, createBean, createCustomScopeRegistry, createExecutionHandle, destroyBean, destroyBean, destroyBean, doCreateBean, doCreateBean, doCreateBean, finalizeConfiguration, findBean, findBean, findBean, findBean, findBeanCandidates, findBeanCandidatesForInstance, findBeanConfiguration, findBeanDefinition, findBeanDefinition, findBeanRegistration, findExecutableMethod, findExecutionHandle, findExecutionHandle, findExecutionHandle, findProxyBeanDefinition, findProxyBeanDefinition, findProxyTargetBeanDefinition, findProxyTargetBeanDefinition, findProxyTargetMethod, findProxyTargetMethod, findProxyTargetMethod, getActiveBeanRegistration, getActiveBeanRegistrations, getActiveBeanRegistrations, getAllBeanDefinitions, getAttribute, getAttribute, getAttributes, getBean, getBean, getBean, getBean, getBean, getBean, getBean, getBeanDefinition, getBeanDefinitionReferences, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanRegistration, getBeanRegistration, getBeanRegistration, getBeanRegistrations, getBeanRegistrations, getBeanRegistrations, getBeanRegistrations, getBeansOfType, getBeansOfType, getBeansOfType, getBeansOfType, getBeansOfType, getBeansOfType, getBeanValidator, getClassLoader, getContextConfiguration, getProxyTargetBean, getProxyTargetBean, getProxyTargetBean, initializeEventListeners, inject, inject, invalidateCaches, isRunning, processParallelBeans, publishEvent, publishEventAsync, refreshBean, removeAttribute, resolveBeanConfigurations, resolveBeanDefinitionReferences, resolveBeanDefinitionReferences, resolveMetadata, setAttribute, streamOfType, streamOfType, streamOfType, streamOfTypeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbuilder, builder, builder, builder, builder, environment, registerSingleton, registerSingleton, registerSingleton, registerSingleton, run, run, run, run, run, run, run, runbuild, build, createBean, createBean, createBean, createBean, createBean, createBean, destroyBean, destroyBean, destroyBean, destroyBean, getBeanValidator, getClassLoader, getContextConfiguration, getEventPublisher, inject, publishEvent, publishEventAsync, refreshBean, runcreateExecutionHandle, findExecutableMethod, findExecutionHandle, findExecutionHandle, findExecutionHandle, findProxyTargetMethod, findProxyTargetMethod, findProxyTargetMethod, getExecutableMethod, getExecutionHandle, getExecutionHandle, getProxyTargetMethod, getProxyTargetMethod, getProxyTargetMethodfindBean, findBean, findBean, findBean, findOrInstantiateBean, getBean, getBean, getBean, getBean, getBean, getBeansOfType, getBeansOfType, getBeansOfType, getBeansOfType, getProxyTargetBean, getProxyTargetBean, streamOfType, streamOfType, streamOfType, streamOfTypecontainsBean, containsBean, containsBean, containsBean, findBeanConfiguration, findBeanDefinition, findBeanDefinition, findBeanDefinition, findBeanDefinition, findBeanRegistration, findProxyBeanDefinition, findProxyBeanDefinition, findProxyTargetBeanDefinition, findProxyTargetBeanDefinition, getActiveBeanRegistrations, getActiveBeanRegistrations, getAllBeanDefinitions, getBeanDefinition, getBeanDefinition, getBeanDefinition, getBeanDefinition, getBeanDefinitionReferences, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanDefinitions, getBeanRegistration, getBeanRegistration, getBeanRegistrations, getBeanRegistrations, getBeanRegistrations, getProxyTargetBeanDefinition, getProxyTargetBeanDefinitionnoOpresolveMetadata, resolveMetadatagetAttributes, removeAttribute, setAttributegetAttribute, getAttributeget, getProperties, getProperty, getProperty, getProperty, getProperty, getRequiredProperty, nameOfget, get, getgetPrefix, resolveRequiredPlaceholderpublic DefaultApplicationContext(@NonNull String... environmentNames)
environmentNames - The environment namespublic DefaultApplicationContext(@NonNull ClassPathResourceLoader resourceLoader, @NonNull String... environmentNames)
environmentNames - The environment namesresourceLoader - The class loaderpublic DefaultApplicationContext(@NonNull ApplicationContextConfiguration configuration)
configuration - The application context configuration@NonNull public <T> ApplicationContext registerSingleton(@NonNull Class<T> type, @NonNull T singleton, @Nullable Qualifier<T> qualifier, boolean inject)
BeanDefinitionRegistryRegisters a new singleton bean at runtime. This method expects that the bean definition data will have been compiled ahead of time.
If bean definition data is found the method will perform dependency injection on the instance followed by
invoking any PostConstruct hooks.
If no bean definition data is found the bean is registered as is.
registerSingleton in interface ApplicationContextregisterSingleton in interface BeanContextregisterSingleton in interface BeanDefinitionRegistryregisterSingleton in class DefaultBeanContextT - The concrete typetype - The bean typesingleton - The singleton beanqualifier - The bean qualifierinject - Whether the singleton should be injected (defaults to true)@NonNull protected Environment createEnvironment(@NonNull ApplicationContextConfiguration configuration)
configuration - The application context configuration@NonNull protected ConversionService createConversionService()
@NonNull public ConversionService<?> getConversionService()
getConversionService in interface ApplicationContext@NonNull public Environment getEnvironment()
getEnvironment in interface ApplicationContext@NonNull public ApplicationContext start()
DefaultBeanContextstart in interface ApplicationContextstart in interface LifeCycle<BeanContext>start in class DefaultBeanContext@NonNull public ApplicationContext stop()
DefaultBeanContextPreDestroy hooks on loaded
singletons.stop in interface ApplicationContextstop in interface LifeCycle<BeanContext>stop in class DefaultBeanContextpublic boolean containsProperty(String name)
PropertyResolverWhether the given property is contained within this resolver.
Note that this method will return false for nested properties. In other words given a key of foo.bar this method will
return false for: resolver.containsProperty("foo")
To check for nested properties using PropertyResolver.containsProperties(String) instead.
containsProperty in interface PropertyResolvername - The name of the propertypublic boolean containsProperties(String name)
PropertyResolvercontainsProperties in interface PropertyResolvername - The name of the propertypublic <T> Optional<T> getProperty(String name, ArgumentConversionContext<T> conversionContext)
PropertyResolverResolve the given property for the given name, type and generic type arguments.
Implementers can choose to implement more intelligent type conversion by analyzing the typeArgument.
getProperty in interface PropertyResolverT - The concrete typename - The nameconversionContext - The conversion context@NonNull public Collection<String> getPropertyEntries(@NonNull String name)
PropertyResolver
datasource.default.url=localhost
datasource.another.url=someother
Calling getPropertyEntries(String) with a value of datasource will result in a collection
containing default and other.getPropertyEntries in interface PropertyResolvername - The name to resolve@NonNull public Map<String,Object> getProperties(@Nullable String name, @Nullable StringConvention keyFormat)
PropertyResolverStringConvention.RAW.getProperties in interface PropertyResolvername - The namekeyFormat - The key format to use for the keys. Default is kebab-case.protected void registerConfiguration(BeanConfiguration configuration)
DefaultBeanContextregisterConfiguration in class DefaultBeanContextconfiguration - The configuration to registerprotected void startEnvironment()
protected void initializeContext(List<BeanDefinitionReference> contextScopeBeans, List<BeanDefinitionReference> processedBeans, List<BeanDefinitionReference> parallelBeans)
DefaultBeanContextContext scope beans.initializeContext in class DefaultBeanContextcontextScopeBeans - The context scope beansprocessedBeans - The beans that require ExecutableMethodProcessor handlingparallelBeans - The parallel bean definitionsprotected <T> Collection<BeanDefinition<T>> findBeanCandidates(BeanResolutionContext resolutionContext, Argument<T> beanType, BeanDefinition<?> filter, boolean filterProxied)
DefaultBeanContextfindBeanCandidates in class DefaultBeanContextT - The bean generic typeresolutionContext - The current resolution contextbeanType - The bean typefilter - A bean definition to filter outfilterProxied - Whether to filter out bean proxy targetsprotected <T> Collection<BeanDefinition<T>> findBeanCandidates(BeanResolutionContext resolutionContext, Argument<T> beanType, boolean filterProxied, Predicate<BeanDefinition<T>> predicate)
DefaultBeanContextfindBeanCandidates in class DefaultBeanContextT - The bean generic typeresolutionContext - The current resolution contextbeanType - The bean typefilterProxied - Whether to filter out bean proxy targetspredicate - The predicate to filter candidatesprotected <T> Collection<BeanDefinition<T>> transformIterables(BeanResolutionContext resolutionContext, Collection<BeanDefinition<T>> candidates, boolean filterProxied)
DefaultBeanContexttransformIterables in class DefaultBeanContextT - The bean typeresolutionContext - The resolution contextcandidates - The candidates.filterProxied - Whether to filter proxied.protected <T> BeanDefinition<T> findConcreteCandidate(Class<T> beanType, Qualifier<T> qualifier, Collection<BeanDefinition<T>> candidates)
DefaultBeanContextfindConcreteCandidate in class DefaultBeanContextT - The generic timebeanType - The bean typequalifier - The qualifiercandidates - The candidates, always more than 1public Optional<String> resolvePlaceholders(String str)
PropertyPlaceholderResolverresolvePlaceholders in interface PropertyPlaceholderResolverstr - The placeholder to resolveOptional.empty() if resolution was not possiblepublic String resolveRequiredPlaceholders(String str) throws ConfigurationException
PropertyPlaceholderResolverresolveRequiredPlaceholders in interface PropertyPlaceholderResolverstr - The placeholder to resolveOptional.empty() if resolution was not possibleConfigurationException - If the placeholders could not be resolvedprotected void initializeTypeConverters(BeanContext beanContext)
beanContext - The bean context