1.在我的项目本地开发完部署到某大单位的生产环境的时候,遇到了个问题。大单位由于性质原因标榜高性能和信创国产,使用的中间件实在是适配不了俺们老旧的厚重的被层层封装的后端“春天”框架。
2.首先我们的框架:前辈留下的商用“高级”框架,通过最外层的pom文件看起来,的确是Spring全家桶:
以及他所接入的Mybatis-Plus插件:说到这个我就特别火大,这个重型商用框架可牛x。pom.xml一层又一层,引入的自己封装的组件,粑粑超级多那种。总之我是在parent的pom.xml下的子模块module的业务服务项目,然后在业务项目api子模块的pom.xml中找到了一个封装的mybatis框架引用:
<dependency>
<groupId>com.ootd.oliba</groupId>
<artifactId>oliba-starter-mybatis</artifactId>
</dependency>
主要包含了1.苞米豆的mybatis-plus,官方2.mybatis(mybatis-spring,mybatis,mybatis-typehandlers-jsr310),3.spring-boot-starter-jdbc(ex了tomcat-jdbc),4.alibaba的druid,5.商用框架的一些脚手架(auth缓存认证相关,auto注解处理相关),还有一个6.ClassFinal Maven 插件,主要用于对 Java 字节码进行加密和混淆,以保护代码不被反编译。
<build>
<plugins>
<plugin>
<groupId>net.roseboy</groupId>
<artifactId>classfinal-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>classFinal</goal>
</goals>
</execution>
</executions>
<configuration>
<password>${password}</password>
<packages>com.oliba</packages>
</configuration>
</plugin>
</plugins>
</build>
重点就是这个mybatis-plus的版本3.4.2,和华为数据库出现适配问题。 3.生产的中间件因为某些高大上的原因,只能去适配生产的redis集群和国产高斯数据库。而我们厚重的商用框架适配的是redis单点,其久远的Spring Boot版本没办法兼容ACL策略,对于高斯数据库mybatis-plus也是到了3.5.x以上的版本才支持。 4.解决方案:(相关的解决方案后续更新。)