企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 合并多个业务库 1 在系统中使用ThreadLocalSQLManager,可以把多个SQLManager合并成一个,比如上个例子的订单和商品俩个SQLManager,可以做合并。使用ThreadLocalSQLManager作为代理类 如下一个Spring Service类,尽管使用了一个sqlManager和mapper,但会根据service方法的注解决定使用哪个sqlManager,如果service方法未指定,则使用默认的sqlManager ```java @Service public class ThreadLocalService { @Qualifier("proxySqlManager") SQLManager sqlManager; @Autowired ThreadLocalService self; @Autowired UserInfoMapper mapper; @Use("sqlManager2") public long test2(){ return mapper.allCount(); } @Use("sqlManager1") public long test1(){ return mapper.allCount(); } public long testDefault(){ return mapper.allCount(); } } ``` Spring Boot 需要配置各个SQLManager,以及代理SQLManager ```properties beetlsql.sqlManagers = proxySqlManager # 设定proxySqlManager为threadlocal,且第一个是默认 beetlsql.proxySqlManager.threadlocal=sqlManager1,sqlManager2 beetlsql.proxySqlManager.basePackage=org.beetl.sql.springboot.threadlocal # 配置sqlManager1,配置sqlManager2 beetlsql.sqlManager1.ds=ds1 beetlsql.sqlManager2.ds=ds2 ``` 如上配置了3个SQLManager,sqlManager1和sqlManager2常规配置,`beetlsql.proxySqlManager.threadlocal`代理了sqlManager1,sqlManager2,并指定beetlsql.sqlManagers为proxySqlManager 代码例子参考[Spring Boot](https://gitee.com/xiandafu/beetlsql/tree/master/sql-integration/sql-springboot-starter/src/test/java/org/beetl/sql/springboot)