AutoConfigure
自动配置的内容
自动配置的 Serializer 是 :
@Bean
@ConditionalOnMissingBean
public Serializer serializer() {
XStreamSerializer xStreamSerializer = new XStreamSerializer();
xStreamSerializer.getXStream().setClassLoader(beanClassLoader);
return xStreamSerializer;
自动配置的 EventBus 是 SimpleEventBus
:
@Bean
@ConditionalOnMissingBean({EventStorageEngine.class, EventBus.class, EventStore.class})
public EventBus eventBus(AxonConfiguration configuration) {
return new SimpleEventBus(Integer.MAX_VALUE, configuration.messageMonitor(EventStore.class, "eventStore"));
自动配置 TransactionManager 时,先看有没有 PlatformTransactionManager
,如果有则配置为 SpringTransactionManager
,如果没有,则取默认配置,结果为 NoTransactionManager
:
@AutoConfigureAfter(TransactionConfiguration.class)
@Configuration
public static class DefaultTransactionConfiguration {
@Bean
@ConditionalOnMissingBean(TransactionManager.class)
public TransactionManager axonTransactionManager() {
return NoTransactionManager.INSTANCE;
}
@Configuration
@ConditionalOnClass(PlatformTransactionManager.class)
@AutoConfigureAfter(name = "org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration")
public static class TransactionConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnBean(PlatformTransactionManager.class)
public TransactionManager axonTransactionManager(PlatformTransactionManager transactionManager) {
return new SpringTransactionManager(transactionManager);