Axon从2.4迁移至3.1:@AnnotationDriven注解相关疑问
Axon 2.x @AnnotationDriven注解详解及3.1版本迁移说明
首先明确@AnnotationDriven(包路径org.axonframework.contextsupport.spring.AnnotationDriven)在Axon 2.4版本中的核心作用:
- 它是Axon Spring集成的"开关"注解,添加到Spring配置类后,会自动扫描应用内所有标注Axon专属注解的组件,比如
@Aggregate、@CommandHandler、@EventHandler - 自动初始化Axon核心基础设施Bean,包括CommandBus、EventBus、EventStore(若配置)等,省去大量手动配置的繁琐步骤
- 触发Axon注解处理器,确保所有命令、事件处理器能正确注册到对应总线中
接下来重点说Axon 3.1版本的变化:
这个注解已经被完全移除了。Axon 3.x系列重构了Spring集成模块,采用了更贴合Spring生态的配置方式:
- 如果是Spring Boot项目:只要引入
axon-spring-boot-starter依赖,Axon的自动配置会自动生效,无需额外添加注解就能完成核心组件初始化与注解扫描 - 如果是普通Spring项目:需要使用
@EnableAxon注解(包路径org.axonframework.spring.config.EnableAxon)替代原@AnnotationDriven,它的核心作用和原注解类似,但做了功能增强,支持更多自定义配置选项
迁移小贴士:
- 直接将配置类上的
@AnnotationDriven替换为@EnableAxon - 确保所有Axon相关依赖统一升级到3.1.x版本,避免版本冲突
- 部分旧版注解的包路径也有变更,比如命令处理器注解从
org.axonframework.commandhandling.annotation.CommandHandler迁移到org.axonframework.commandhandling.CommandHandler,需要同步调整
内容的提问来源于stack exchange,提问作者A S
相关产品推荐
相关产品推荐

