当前位置: 首页 > news >正文

数据访问:@Db 一站式注入

多数据源配置(YAML)
solon.dataSources:
db1:
class: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost/test
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: 123456
db2:
url: jdbc:mysql://localhost/order
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: 123456
5.2 @Db 注入
// Solon 一行搞定多数据源
@Db(“db1”) UserMapper userMapper;
@Db(“db2”) OrderMapper orderMapper;
对比 Spring Boot 多数据源需要配置:多个 DataSource + 多个 SqlSessionFactory + 多个 TransactionManager + @MapperScan… Solon 使用 @Db。

5.3 ORM 集成
ORM Spring Boot 依赖 Solon 依赖
MyBatis mybatis-spring-boot-starter mybatis-solon-plugin
MyBatis-Plus mybatis-plus-spring-boot-starter mybatis-plus-solon-plugin
JPA spring-boot-starter-data-jpa solon-data-jpa
Easy-Query easy-query-spring-boot-starter easy-query-solon-plugin
5.4 事务
Solon Spring Boot 说明
@Transaction @Transactional 声明式事务
@Transaction(policy = TranPolicy.requires_new) @Transactional(propagation = Propagation.REQUIRES_NEW) 事务传播策略
Solon 的 @Transaction 默认遇到任何异常都回滚,无需指定异常类型。

六、测试迁移
Solon Spring Boot 说明
@SolonTest(App.class) @SpringBootTest 测试启动
@SolonTest(env=“test”) @ActiveProfiles(“test”) 测试环境
HttpTester MockMvc HTTP 接口测试
@Rollback @Transactional + @Rollback 事务回滚
@Import(profiles=…) @TestPropertySource 导入测试属性
HttpTester 用法示例:

@SolonTest(App.class)
public class UserControllerTest extends HttpTester {

@Test public void testGetUser() { // GET 请求 String resp = path("/users/1").get(); assertEquals(200, resp.code()); // POST 请求 String json = "{\"name\":\"test\"}"; String resp2 = path("/users").body(json).post(); assertContains(resp2, "test"); }

}
七、其他常见对照
场景 Spring Boot Solon
拦截器 HandlerInterceptor @Around 注解或 Solon Filter
定时任务 @Scheduled @Scheduled(同名)+ @EnableScheduling
文件上传 MultipartFile UploadedFile(用法一致)
RPC 调用 @FeignClient @NamiClient
注册发现 @EnableDiscoveryClient 无需注解,引入插件自动生效
配置刷新 @RefreshScope 无需注解,配置变更自动感知
八、迁移检查清单

POM:spring-boot-starter-parent → solon-parent

POM:spring-boot-starter-* → solon-* / *-solon-plugin

配置:application.yml → app.yml(环境文件同理)

启动类:@SpringBootApplication → @SolonMain

启动:SpringApplication.run() → Solon.start()

IoC:@Autowired → @Inject

IoC:@Service/@Repository → @Component

Web:@RestController → @Controller

Web:@RequestMapping → @Mapping

Web:@PathVariable → @Path

Web:HttpServletRequest → Context

配置:@Value → @Inject(“${…}”)

数据:spring.datasource.* → solon.dataSources.*

数据:@Transactional → @Transaction

测试:@SpringBootTest → @SolonTest

测试:MockMvc → HttpTester
九、写在最后
这篇对照表覆盖了日常开发中最常用的 90% 场景。Solon 的注解体系并非简单的"换皮",它在统一性

http://www.jsqmd.com/news/1229845/

相关文章:

  • 湖州上位机软件开发哪家靠谱?本地智造工厂定制改造解决方案 - 米諾
  • React Native Photo Browser 终极指南:构建全功能移动端图片画廊
  • BOF_Collection终极指南:从零开始掌握Cobalt Strike Beacon对象文件
  • | 端口本身没区别,暴露方式才是关键
  • GitHub Copilot SDK自定义工具开发:如何扩展AI代理能力
  • Windows系统文件dot3ui.dll丢失找不到问题解决
  • 一文读懂PARD2-Llama-3.1-8B的Confidence-Adaptive Token技术:提升模型接受率的关键
  • PARD2-Llama-3.1-8B核心突破:目标对齐优化如何颠覆传统投机解码范式?
  • 合肥庐阳区2026奢侈品回收指南:逸程汇总香奈儿LV回收行情 - 逸程奢侈品回收中心
  • 基于HYPIR模型的文物字画超分辨率修复系统:从数据集清洗到模型调优全攻略
  • 2026济南宝格丽首饰回收哪家好? 本地正规门店排名及真实变现行情解析 - 资讯洞察员
  • BIND9 权威指南:从零开始掌握互联网域名系统(DNS)服务器
  • 2026淮安黄金回收便民指南|6家正规门店名录与变现提示 - 商业信息快查
  • AI代码能跑就敢合并?程序员最容易踩这个坑
  • Tmax-9B-MLX-4bit入门指南:如何在Mac上快速部署高性能AI模型
  • 收藏!大模型时代,小白程序员如何逆袭成为前端架构师?
  • 从零到专业:用AI 5分钟生成媲美主编级大纲的4阶训练法,附可运行提示词库
  • 2026长沙水电维修公司排名|持证电工/管道工正规上门平台推荐 - 邻家快修
  • 基于SpringBoot + Vue药房药品平台
  • 提升开发效率!grunt-sass与Dart Sass结合使用的技巧与实践
  • 麒麟珠宝首饰行情更新!福州鼓楼区珠宝回收门店估价参考 - 大牌深度测评
  • 如何快速上手Select.js?5分钟实现高颜值下拉菜单的完整教程
  • 2026重庆实测解析!欧米茄卡地亚万国正规手表回收店排名及官方回收政策 - 企业家观察员
  • 2026年7月科技型中小企业评价入库靠谱公司推荐TOP5:哪家最省心? - 品牌帮
  • 我与 IT 这三十年:2005,软件开始住在网上
  • 今日 +2299 Star,这个工具让 AI 读代码不再像翻字典
  • GEO优化不是大厂专属:广拓时代谈普通企业的AI搜索机会
  • 当Agent涌入企业,阿里云如何补齐RAG这关键一环?
  • 小白程序员必看:AI如何赋能医疗健康行业(实战案例+实操方法)
  • 权威信息声明!亨得利官方服务项目及价格查询|详细维修地址与电话(2026年7月更新) - 亨得利官方