<axon:event-bus id="eventBus"/>
<axon:event-sourcing-repository id="customerRepository"
aggregate-type="org.abhishek.axon.aggregates.Customer">
<axon:snapshotter-trigger event-count-threshold="2" snapshotter-ref="snapshotter"/>
</axon:event-sourcing-repository>
<bean id="snapshotter" class="org.axonframework.eventsourcing.SpringAggregateSnapshotter">
<property name="eventStore" ref="eventStore"/>
<property name="executor" ref="taskExecutor"/>
</bean>
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="2"/>
<property name="maxPoolSize" value="2"/>
<property name="waitForTasksToCompleteOnShutdown" value="true"/>
</bean>
<axon:aggregate-command-handler id="customerHandler"
aggregate-type="org.abhishek.axon.aggregates.Customer"
repository="customerRepository"
command-bus="commandBus"/>
<bean class="org.axonframework.commandhandling.gateway.CommandGatewayFactoryBean">
<property name="commandBus" ref="commandBus"/>
</bean>
<bean class="org.abhishek.axon.eventhandlers.ExternalCustomerEventHandler"/>
<!-- mongodb specific event store config-->
<bean id="eventStore" class="org.axonframework.eventstore.mongo.MongoEventStore">
<constructor-arg ref="mongoTemplate"/>
</bean>
<bean id="mongoTemplate" class="org.axonframework.eventstore.mongo.DefaultMongoTemplate">
<constructor-arg index="0" ref="mongo"/>
<constructor-arg index="1" value="customers"/>
<constructor-arg index="2" value="domainevents"/>
<constructor-arg index="3" value="snapshotevents"/>
<constructor-arg index="4">
<null/>
</constructor-arg>
<constructor-arg index="5">
<null/>
</constructor-arg>
</bean>
<mongo:mongo id="mongo" host="127.0.0.1" port="27017"/>
</beans>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Thanks | Abhishek