澳八机器人 核心容器与依赖注入类注解

一、核心容器与依赖注入类注解 这部分是迁移的基础,Solon对注入逻辑做了整合,大幅减少了

注解组合的使用场景。 Spring Boot 注解 Solon 对应注解 迁移实战要点 @Autowired @Inject Solon

默认按类型注入,无需额外指定,直接替换即可完成90%的注入场景适配 @Autowired + @Qualifier("name") 

 @Inject("name") 把两个注解合并为一个,直接在注解内指定Bean名称,代码更简洁 @Value("${config.key}") 

 @Inject("${config.key}") 配置注入也统一用@Inject,不需要单独记@Value注解,降低记忆成本 

 @Scope("singleton") @Singleton Solon默认所有Bean都是单例,普通场景下甚至可以省略该注

解 @Scope("prototype") @Singleton(false) 直接传入false参数即可声明多例Bean,写法更直观

 @PostConstruct @Init 组件注入完成后的初始化方法,直接替换注解名称即可,逻辑无需修改 

 @Component @Component 注解名称完全一致,几乎零成本迁移,托管逻辑完全对齐 

 @Service / @Dao / @Repository @ProxyComponent Solon用代理托管组件统一标记业务层、数据层,

支持AOP切面自动生效 二、配置与扫描类注解 Solon的配置体系做了简化,去掉了冗余的扫描配置,

启动速度更快。 Spring Boot 注解 Solon 对应注解 迁移实战要点 @Configuration @Configuration 配置

类注解完全对齐,原有配置类的结构几乎不用改动 @Bean @Bean 方法注册Bean的逻辑完全一致,直接替

换包名即可使用 @Import + @ComponentScan @Import 一个注解同时支持导入配置类和指定扫描包路

径,不需要分开写两个注解 @PropertySource @PropertySource 加载外部配置文件的用法完全相同,原有

配置路径无需修改 @ConditionalOnClass / @ConditionalOnProperty @Condition 统一的条件注解,支

持类存在判断、配置项判断等多种场景,自定义条件更灵活 三、Web控制器类注解 Web层的注解迁移成本极

低,开发体验几乎和Spring Boot一致,甚至更简洁。 Spring Boot 注解 Solon 对应注解 迁移实战要点 

 @Controller / @RestController @Controller Solon的Controller默认直接返回响应体,

相当于Spring Boot的@RestController,不需要额外加@ResponseBody @RequestMapping /

 @GetMapping / @PostMapping @Mapping 统一的请求映射注解,支持指定请求方法、路径,

写法更统一,不需要记一堆Method衍生注解 @RequestParam @Param 获取URL参数、表单参数,

直接替换注解名,参数名、默认值配置完全兼容 @RequestHeader @Header 获取请求头信息,用法完全一致 

 @RequestBody @Body 接收JSON请求体,自动完成序列化,逻辑无需调整 @CookieValue 

 @Cookie 获取Cookie值,配置方式完全对齐 无原生对应注解 @Remoting Solon专属的RPC服务端注解,

直接标记类即可对外提供RPC服务,不需要额外配置 四、迁移避坑实战技巧 包名替换规则:所有Solon注解的

包名统一为org.noear.solon.annotation.*,替换完Spring的包名后基本就能识别所有注解。 特殊场景

处理:Spring Boot中${}属性引用的写法在Solon配置文件中不支持,需要把动态值的逻辑移到代码中通

过Solon.cfg().get()获取。 零成本过渡方案:迁移初期可以保留部分Spring Boot注解,配合Solon的兼容

插件运行,逐步替换后再移除Spring依赖,避免一次性重构带来的风险。 启动类适配:把原有的

@SpringBootApplication替换为@SolonMain,main方法里的SpringApplication.run()替换为Solon.start(App.class, args)

启动速度直接提升5-10倍。以上是完整的注解迁移对照表,如果你需要针对某个特定模块(比如权限校验、数据库访问)

的迁移细节,可以随时告诉我。