一、如果需要快速生效,无需改造,可以看如下步骤:
1. 如果用的boot版本,需要复制拷贝一份BladeScopeModelHandler,比如命名为BladeScopeModelHandlerMaster,拷贝到boot工程一个用于生效配置类的包。然后在类上加上DS("master")的注解。同时再到config类初始化,这样逻辑就会走自定义的这个数据权限查询类,也就只会锁定到master库来查询了。
@DS("master") @RequiredArgsConstructor public class BladeScopeModelHandlerMaster implements ScopeModelHandler { ...... }
@Configuration(proxyBeanMethods = false)
public class BladeScopeConfiguration { @Bean public ScopeModelHandler scopeModelHandler() { return new BladeScopeModelHandlerMaster(jdbcTemplate); } }
二、如果需要深度改造,可以多拓展几个类,参考cloud的做法,具体可以看如下步骤:
1. 把这些拷贝到Boot工程,单独一个包
2. 将这两个cache类里面操作数据库的feign方法,改为基于mybatis-plus的service,然后给对应service加上Ds注解指定master数据源就可以了
3. 最后确保这两个handler正常初始化为bean,这样底层就会走自定义的handler逻辑,自定义handler也会走自定义的cache,自定义cache内部的数据库查询也就会走定义的master数据源了
讨论(1)
-
上面的 方法太笨了,有更好的方法,
将bladex-tool中的BladeScopeModelHandler.java复制到boot工程里加上@Master就可以了,它会自动覆盖的,如下图:

讨论(2)
-
我记得 那个时候 我用的boot版 是直接吧 数据权限这个功能去掉了 用不着...
讨论(1)
-
具体怎么改呢?
讨论(0)
官方新品
- 热议问题
-
怎么动态修改顶部菜单栏里面标题?
1
-
网关 node red pro 的docker部署问题
1
-
两个服务连接power-job,只能启动一个,第二个端口占用
1
-
BladeRedis工具怎么使用Sorted Set
1
-
数据权限配了不生效,Mapper层的 接口名不能以Query结尾
1
-
其他业务系统与bladeX对接是否能用token直接登录?
2
-
把数据库连接池改成hikari后,启动服务报错
2
-
修改密码报错 请输入正确的确认密码
1
-
boot接口获取token
1
-
SpringCloud版本项目启动完后报这个错误/actuator/health error status:500
1
扫一扫访问 Blade技术社区 移动端