public class SpringAggregateSnapshotter extends AggregateSnapshotter implements org.springframework.context.ApplicationContextAware
AggregateSnapshotter
, this implementation lazily retrieves AggregateFactories from the Application
Context when snapshot requests are made.
Instead of configuring directly, consider using the SpringAggregateSnapshotterFactoryBean
, which
configures this class using values available in the application context.
SpringAggregateSnapshotterFactoryBean
Modifier and Type | Class and Description |
---|---|
static class |
SpringAggregateSnapshotter.Builder
Builder class to instantiate a
SpringAggregateSnapshotter . |
Modifier | Constructor and Description |
---|---|
protected |
SpringAggregateSnapshotter(SpringAggregateSnapshotter.Builder builder)
Instantiate a
SpringAggregateSnapshotter based on the fields contained in the SpringAggregateSnapshotter.Builder . |
Modifier and Type | Method and Description |
---|---|
static SpringAggregateSnapshotter.Builder |
builder()
Instantiate a Builder to be able to create a
SpringAggregateSnapshotter . |
protected AggregateFactory<?> |
getAggregateFactory(Class<?> aggregateType)
Returns the AggregateFactory registered for the given
aggregateType , or null if no such
AggregateFactory is known. |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
createSnapshot, registerAggregateFactory
createSnapshotterTask, getEventStore, getExecutor, scheduleSnapshot
protected SpringAggregateSnapshotter(SpringAggregateSnapshotter.Builder builder)
SpringAggregateSnapshotter
based on the fields contained in the SpringAggregateSnapshotter.Builder
. The
AggregateFactory
instances are lazily retrieved by the ApplicationContext
.
Will assert that the EventStore
, ParameterResolverFactory
and HandlerDefinition
are not
null
, and will throw an AxonConfigurationException
if any of them is null
.
builder
- the SpringAggregateSnapshotter.Builder
used to instantiate a SpringAggregateSnapshotter
instancepublic static SpringAggregateSnapshotter.Builder builder()
SpringAggregateSnapshotter
. The AggregateFactory
instances are lazily retrieved by the ApplicationContext
.
The Executor
is defaulted to an DirectExecutor.INSTANCE
, the
TransactionManager
defaults to a NoTransactionManager
and
the SpanFactory
defaults to a NoOpSpanFactory
. Additionally, this
Builder has convenience functions to default the ParameterResolverFactory
and HandlerDefinition
based on instances of these available on the classpath in case these are not provided (respectively
AggregateSnapshotter.Builder.buildParameterResolverFactory()
and AggregateSnapshotter.Builder.buildHandlerDefinition()
). Upon instantiation
of a AggregateSnapshotter
, it is recommended to use these function to set those fields.
The EventStore
is a hard requirement and as such should be provided.
SpringAggregateSnapshotter
ClasspathParameterResolverFactory
,
ClasspathHandlerDefinition
protected AggregateFactory<?> getAggregateFactory(Class<?> aggregateType)
AggregateSnapshotter
aggregateType
, or null
if no such
AggregateFactory is known.
Subclasses may override this method to enhance how AggregateFactories are retrieved. They may choose to
AggregateSnapshotter.registerAggregateFactory(AggregateFactory)
if it hasn't been found using this implementation.
getAggregateFactory
in class AggregateSnapshotter
aggregateType
- The type to get the AggregateFactory fornull
if not foundpublic void setApplicationContext(@Nonnull org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
org.springframework.beans.BeansException
Copyright © 2010–2024. All rights reserved.