-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SpringBoot3支持问题 #5527
Comments
lambda的问题可以看看这个 quarkiverse/quarkus-mybatis#184 |
你好 请问测试了内置分页插件么?我按照给的例子,使用内置分页插件后,启动后执行分页查询会出现各种NoSuchMethodException
|
可能要等spring-native了,目前不是很好解决。 |
异常提供详细点吧,明明天有空我看看分页的。 |
2023-08-03 00:33:05.650 === [main]=== INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] |
@Coolkids 分页插件有个简单的解决法子,提示什么接口找不到,就添加相应接口到 |
可以发下你测试的reflect-config.json和proxy-config.json配置文件么, 我按照这种方式最后报错 |
|
请问Mybatis-Plus是否有计划从某个版本开始默认携带3.x版本的mybatis-spring? 如果没有的话,我贡献几个思路:
我看到 commit be7a90f 中把mybati-spring版本又降回了2.x版本,是在为未来升级做准备了吗? |
mybatis-plus 4.x大概率跟着mybatis4.x走,mybatis-plus3.x的维护随着mybatis3.x版本走,但3.x的版本还是要维护好java8和高版本的jdk支持,可能后面发两个版本的starter把. |
|
这些错误信息看不出具体问题,请提供一个工程示例过来看看,目前示例工程也没碰到这种错误. |
工程示例请查看:https://github.com/lichong-a/mybatis-plus-native.git |
AOT 不支持 @MapperScan({"work.lichong.test"}) 在mapper层 用 @Mapper 注入 |
@nieqiurong 请问这个lambda有思路了吗? 我来改把试试. |
https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start-for-building-native-image |
没有,没怎么花时间弄这个,你弄好了可以提交PR上来. |
#5594 我测试是OK了. spring-native 就别想了.那位老哥说这个东西不常用所以不做. 我基于graal Feature 做了个自定义注解来适配 |
方案可行,先在示例中增加上你这个方式. |
#5594 反复确认了一下 这个PR提交前,IService的几个方法是可以处理 |
mapper-locations 这个配置 AOT 模式下好像不支持,有别的办法吗?目前,在AOT模式下使用相同的Package是可以运行成功的。 |
Stream.of( |
感谢!还有个问题请教下,就是加载 mapper 文件。AOT模式下,90个mapper文件,应用启动耗时非常长,我们测试的时候竟然要100多秒。
|
看demo Stream.of( |
这个我看过,我用的也是demo中的MyBatisNativeConfiguration。但是,似乎DTD文件,应用在启动的时候,会从mybatis.org网站下载dtd文件,导致加载mapper非常慢,并没有从本地加载。 是否跟这个参数 javax.xml.accessExternalDTD 有关?按照官方的例子,AOT模式下需要设置javax.xml.accessExternalDTD=all,这样导致从mybatis.org下载dtd文件?90个mapper文件,下载90次? 如果不设置的话,启动就报错,提示Invalid bound statement (not found) |
javax.xml.accessExternalDTD 这个是mybatis说的? 不用设置的. 我这边没有设置哦. 只要使用这个issues提供的 MyBatisNativeConfiguration 里面加上你自己的 Stream.of( "mybatisXml/*Dao.xml" ).forEach(hints.resources()::registerPattern); 就好. 我这边 136个mapper 文件启动要7秒. 比一般都AOT项目要长4秒左右. 但是也没你这个 100多秒... |
确实是有问题的,加载mapper,每次都会从 mybatis.org 网站下载 DTD 文件。不过这个问题好像已经修复了,你看看mybatis/spring-boot-starter#852 现在项目启动正常了。 |
maven中央仓库没有看到有mybatis-plus-spring-boot3-starter,在哪能获取到这个依赖啊? |
|
|
尝试在老项目集成了 graalvm,总结下
5.关于 lambda 的支持,spring-projects/spring-framework#29655 <dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>23.0.0</version>
</dependency> 2)注册 lambdaCapturingClass public class LambdaRegistrationFeature implements Feature {
@Override
public void duringSetup(DuringSetupAccess access) {
// TODO 这里需要将lambda表达式所使用的成员类都注册上来,具体情况视项目情况而定,一般扫描@Controller和@Service的会多点.
RuntimeSerialization.registerLambdaCapturingClass(ProductServiceImpl.class);
}
} 3)给 native-image 添加参数 --features=com.fangzhou.aot.LambdaRegistrationFeature |
所以现在是什么情况,完全支持了吗? |
我这边也在老项目中进行了native image , 但是我这边有元数据收集这一步骤(反射、代理等)。并且native image打包后,文件大小比普通的jar要大了接近1倍的大小。不知道你那边是否也有同样的问题? |
好像是支持了,我把依赖改成下面这个就跑通了
|
目前Mybatis-Plus携带的版本为mybatis-spring的版本为2.x,如果需要升级SpringBoot3的话,需要自行将mybatis-spring版本升级至3.x
Native支持:
1.需要升级mybatis版本至3.5.13
2.mybatis-spring升级至3.0.2+ 最好
插件动态代理反射异常: 3.5.3.2修复 #5532
示例工程: https://github.com/nieqiurong/mybatis-native-demo
支持情况:
1.普通增删改查无问题
2.lambda表达式不可使用
另外请关注: https://github.com/mybatis/spring-native
2023年8月20日
感谢 @z744489075 提供lambda处理方式
2023年9月18日
新增mybatis-plus-spring-boot3-starter对SpringBoot3支持.
目前支持情况:
The text was updated successfully, but these errors were encountered: