关于MyBatis-Plus公共字段自动填充的坑(涉及多数据源)
感谢大佬
https://www.cnblogs.com/stephen-java/p/11247020.html
情况是:我自己分包配置的springboot多数据源,springboot还在学习阶段,根据官网的配置:
https://mp.baomidou.com/guide/auto-fill-metainfo.html
可以debug看到输出的SQL语句有自动填充字段,但是数值一直是NULL。sout在
MyMetaObjectHandler 感觉这个class根本进不去,控制台没有输出sout内容,我就觉得一定是我的MyMetaObjectHandler 写的有问题。一个字一个字的对官网例子,又查了很多资料都快放弃了。才发现配置多数据源的对话部分要设置handler。
MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
//加载数据源
mybatisPlus.setDataSource(dataSource);
//全局配置
GlobalConfig globalConfig = new GlobalConfig();
//配置填充器
globalConfig.setMetaObjectHandler(new MetaObjectHandler());
mybatisPlus.setGlobalConfig(globalConfig);
之后MyMetaObjectHandler 有sout输出,按照官网去做就OK了。感觉还是个人技能不行,配置多数据源的时候代码都是抄的。
这个提供一个mark给需要的人。
有路过的大佬可以告诉我,分包配置springboot多数据源,和AOP动态配置有什么区别吗?
当然MyBatis-Plus官网也有动态配置数据源的包,但是个人觉得不习惯,MyBatis-Plus需要在service里@DS指定数据源,我觉得指定数据源最好在mapper层就应该结束掉。不应该在逻辑部分还要关心我用的哪个数据库。分包实现呢,就直接实例我的实体类就好啦,在配置多数据源的时候是哪个数据库已经封装好了,写逻辑的时候就只关心逻辑就好啦。
有路过的大佬可以告诉我,分包配置springboot多数据源,和AOP动态配置有什么区别吗?