当前使用版本(必填,否则不予处理)

3.5.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

spring native编译成功,但是执行失败

重现步骤(如果有就写完整)

示例代码:https://github.com/lohcve/mybatis-plus-sample-quickstart 执行build-native.bat后,编译为exe文件,然后执行exe文件

报错信息

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userMapper': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[na:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[na:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[na:na]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[na:na]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[na:na]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[na:na]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[na:na]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:934) ~[na:na]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[na:na]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[na:na]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[na:na]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) ~[mybatis-plus-sample-quickstart.exe:2.6.7]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) ~[mybatis-plus-sample-quickstart.exe:2.6.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[mybatis-plus-sample-quickstart.exe:2.6.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[mybatis-plus-sample-quickstart.exe:2.6.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[mybatis-plus-sample-quickstart.exe:2.6.7]
        at com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication.main(QuickstartApplication.java:12) ~[mybatis-plus-sample-quickstart.exe:0.0.1-SNAPSHOT]
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
        at org.springframework.util.Assert.notNull(Assert.java:201) ~[na:na]
        at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:122) ~[na:na]
        at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-plus-sample-quickstart.exe:2.0.7]
        at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[na:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[na:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[na:na]
        ... 16 common frames omitted


[已退出进程,代码为 1 (0x00000001)]

Comment From: xue2lang

me too, mark

Comment From: Deathef

This problem also exists in version 3.5.2

Comment From: liyongscys

我的环境可以正常运行,但仅测试插入和查询。 环境如下: Mybatis Plus 3.5.1 Win10 21H2 内部版本 19044.1706 VS2019 GraalVM Updater 21.3.2 具体为 graalvm-ce-java11-21.3.2 示例代码 https://github.com/liyongscys/mybatis-plus-graalvm-sample

Comment From: lohcve

你这样写,确实不报这个错误了,也能运行成功,但是扫描不到xml文件,所有写在xml文件中的SQL都无法执行。运行时错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

Comment From: liyongscys

应该是运行时无法找到这些xml文件。 我修改了代码。 示例代码 https://github.com/liyongscys/mybatis-plus-graalvm-sample

Comment From: lohcve

可以运行了,还有个坑就是不支持fastjson,已替换为jackson。