启动失败是 MyBatis 与 Spring Boot 3 的兼容问题导致的: userMapper Bean 创建时触发 Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

异常如图:

 1 /Users/sml/Library/Java/JavaVirtualMachines/azul-17.0.15-1/Contents/Home/bin/java -Dmanagement.endpoint.env.show-values=when_authorized -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dmanagement.endpoints.jmx.exposure.include=* -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=55803 -Dfile.encoding=UTF-8 -classpath /Users/simpleli/workspace/toast-ddd-demo/toast-user-interface/target/classes:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter/3.3.2/spring-boot-starter-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot/3.3.2/spring-boot-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.3.2/spring-boot-autoconfigure-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.3.2/spring-boot-starter-logging-3.3.2.jar:/Users/sml/.m2/repository/ch/qos/logback/logback-classic/1.5.6/logback-classic-1.5.6.jar:/Users/sml/.m2/repository/ch/qos/logback/logback-core/1.5.6/logback-core-1.5.6.jar:/Users/sml/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.23.1/log4j-to-slf4j-2.23.1.jar:/Users/sml/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar:/Users/sml/.m2/repository/org/slf4j/jul-to-slf4j/2.0.13/jul-to-slf4j-2.0.13.jar:/Users/sml/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/Users/sml/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/Users/simpleli/workspace/toast-ddd-demo/toast-user-application/target/classes:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.3.2/spring-boot-starter-jdbc-3.3.2.jar:/Users/sml/.m2/repository/com/zaxxer/HikariCP/5.1.0/HikariCP-5.1.0.jar:/Users/sml/.m2/repository/org/springframework/spring-jdbc/6.1.11/spring-jdbc-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-tx/6.1.11/spring-tx-6.1.11.jar:/Users/simpleli/workspace/toast-ddd-demo/toast-user-domain/target/classes:/Users/sml/.m2/repository/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar:/Users/sml/.m2/repository/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar:/Users/sml/.m2/repository/com/baomidou/mybatis-plus-annotation/3.5.6/mybatis-plus-annotation-3.5.6.jar:/Users/sml/.m2/repository/com/baomidou/mybatis-plus-core/3.5.6/mybatis-plus-core-3.5.6.jar:/Users/sml/.m2/repository/com/github/jsqlparser/jsqlparser/4.9/jsqlparser-4.9.jar:/Users/sml/.m2/repository/org/mybatis/mybatis/3.5.16/mybatis-3.5.16.jar:/Users/simpleli/workspace/toast-ddd-demo/toast-user-infrastructure/target/classes:/Users/sml/.m2/repository/com/baomidou/mybatis-plus-boot-starter/3.5.6/mybatis-plus-boot-starter-3.5.6.jar:/Users/sml/.m2/repository/com/baomidou/mybatis-plus/3.5.6/mybatis-plus-3.5.6.jar:/Users/sml/.m2/repository/com/baomidou/mybatis-plus-extension/3.5.6/mybatis-plus-extension-3.5.6.jar:/Users/sml/.m2/repository/org/mybatis/mybatis-spring/2.1.2/mybatis-spring-2.1.2.jar:/Users/sml/.m2/repository/com/baomidou/mybatis-plus-spring-boot-autoconfigure/3.5.6/mybatis-plus-spring-boot-autoconfigure-3.5.6.jar:/Users/sml/.m2/repository/com/mysql/mysql-connector-j/8.3.0/mysql-connector-j-8.3.0.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-data-redis/3.3.2/spring-boot-starter-data-redis-3.3.2.jar:/Users/sml/.m2/repository/io/lettuce/lettuce-core/6.3.2.RELEASE/lettuce-core-6.3.2.RELEASE.jar:/Users/sml/.m2/repository/io/netty/netty-common/4.1.111.Final/netty-common-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-handler/4.1.111.Final/netty-handler-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-resolver/4.1.111.Final/netty-resolver-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-buffer/4.1.111.Final/netty-buffer-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.111.Final/netty-transport-native-unix-common-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-codec/4.1.111.Final/netty-codec-4.1.111.Final.jar:/Users/sml/.m2/repository/io/netty/netty-transport/4.1.111.Final/netty-transport-4.1.111.Final.jar:/Users/sml/.m2/repository/io/projectreactor/reactor-core/3.6.8/reactor-core-3.6.8.jar:/Users/sml/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/Users/sml/.m2/repository/org/springframework/data/spring-data-redis/3.3.2/spring-data-redis-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/data/spring-data-keyvalue/3.3.2/spring-data-keyvalue-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/data/spring-data-commons/3.3.2/spring-data-commons-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/spring-oxm/6.1.11/spring-oxm-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-context-support/6.1.11/spring-context-support-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.3.2/spring-boot-starter-web-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.3.2/spring-boot-starter-json-3.3.2.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.17.2/jackson-datatype-jdk8-2.17.2.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.17.2/jackson-datatype-jsr310-2.17.2.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.17.2/jackson-module-parameter-names-2.17.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.3.2/spring-boot-starter-tomcat-3.3.2.jar:/Users/sml/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.26/tomcat-embed-core-10.1.26.jar:/Users/sml/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.26/tomcat-embed-el-10.1.26.jar:/Users/sml/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.26/tomcat-embed-websocket-10.1.26.jar:/Users/sml/.m2/repository/org/springframework/spring-web/6.1.11/spring-web-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-beans/6.1.11/spring-beans-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-webmvc/6.1.11/spring-webmvc-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-context/6.1.11/spring-context-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-expression/6.1.11/spring-expression-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.3.2/spring-boot-starter-aop-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/spring-aop/6.1.11/spring-aop-6.1.11.jar:/Users/sml/.m2/repository/org/aspectj/aspectjweaver/1.9.22.1/aspectjweaver-1.9.22.1.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar:/Users/sml/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar:/Users/sml/.m2/repository/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar:/Users/sml/.m2/repository/org/springframework/spring-core/6.1.11/spring-core-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/spring-jcl/6.1.11/spring-jcl-6.1.11.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/3.3.2/spring-boot-starter-actuator-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/3.3.2/spring-boot-actuator-autoconfigure-3.3.2.jar:/Users/sml/.m2/repository/org/springframework/boot/spring-boot-actuator/3.3.2/spring-boot-actuator-3.3.2.jar:/Users/sml/.m2/repository/io/micrometer/micrometer-observation/1.13.2/micrometer-observation-1.13.2.jar:/Users/sml/.m2/repository/io/micrometer/micrometer-commons/1.13.2/micrometer-commons-1.13.2.jar:/Users/sml/.m2/repository/io/micrometer/micrometer-jakarta9/1.13.2/micrometer-jakarta9-1.13.2.jar:/Users/sml/.m2/repository/io/micrometer/micrometer-core/1.13.2/micrometer-core-1.13.2.jar:/Users/sml/.m2/repository/org/hdrhistogram/HdrHistogram/2.2.2/HdrHistogram-2.2.2.jar:/Users/sml/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/simpleli/workspace/toast-ddd-demo/toast-user-common/target/classes:/Users/sml/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/3.0.1/mybatis-spring-boot-starter-3.0.1.jar:/Users/sml/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/3.0.1/mybatis-spring-boot-autoconfigure-3.0.1.jar:/Users/sml/.m2/repository/org/mybatis/mybatis/3.5.11/mybatis-3.5.11.jar:/Users/sml/.m2/repository/org/mybatis/mybatis-spring/3.0.1/mybatis-spring-3.0.1.jar com.toast.user.interfaces.ToastUserApplication
 2 
 3   .   ____          _            __ _ _
 4  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
 5 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 6  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
 7   '  |____| .__|_| |_|_| |_\__, | / / / /
 8  =========|_|==============|___/=/_/_/_/
 9 
10  :: Spring Boot ::                (v3.3.2)
11 
12 2025-11-13 09:17:26.633 [main] INFO  [] c.t.u.i.ToastUserApplication - Starting ToastUserApplication using Java 17.0.15 with PID 96023 (/Users/simpleli/workspace/toast-ddd-demo/toast-user-interface/target/classes started by sml in /Users/simpleli/workspace/toast-ddd-demo)
13 2025-11-13 09:17:26.634 [main] INFO  [] c.t.u.i.ToastUserApplication - No active profile set, falling back to 1 default profile: "default"
14 2025-11-13 09:17:27.109 [main] INFO  [] o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
15 2025-11-13 09:17:27.110 [main] INFO  [] o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
16 2025-11-13 09:17:27.125 [main] INFO  [] o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces.
17 2025-11-13 09:17:27.225 [main] WARN  [] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'userMapper' defined in file [/Users/simpleli/workspace/toast-ddd-demo/toast-user-infrastructure/target/classes/com/toast/user/infrastructure/mapper/UserMapper.class]: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
18 2025-11-13 09:17:27.234 [main] INFO  [] o.s.b.a.l.ConditionEvaluationReportLogger - 
19 
20 Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
21 2025-11-13 09:17:27.242 [main] ERROR [] o.s.boot.SpringApplication - Application run failed
22 org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'userMapper' defined in file [/Users/simpleli/workspace/toast-ddd-demo/toast-user-infrastructure/target/classes/com/toast/user/infrastructure/mapper/UserMapper.class]: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
23     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:857)
24     at org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:743)
25     at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAnnotationOnBean(DefaultListableBeanFactory.java:735)
26     at org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector.detect(AnnotationDependsOnDatabaseInitializationDetector.java:36)
27     at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.detectDependsOnInitializationBeanNames(DatabaseInitializationDependencyConfigurer.java:152)
28     at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.postProcessBeanFactory(DatabaseInitializationDependencyConfigurer.java:115)
29     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:363)
30     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:197)
31     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789)
32     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607)
33     at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
34     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
35     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
36     at org.springframework.boot.SpringApplication.run(SpringApplication.java:335)
37     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363)
38     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352)
39     at com.toast.user.interfaces.ToastUserApplication.main(ToastUserApplication.java:11)
40 
41 进程已结束,退出代码为 1
View Code

 

- 根因是 mybatis-plus-boot-starter:3.5.6 传递引入了不兼容的 org.mybatis:mybatis-spring:2.1.2 ,该版本与 Spring Framework 6(Spring Boot 3)不兼容。
- 处理措施:
- 移除了接口模块中重复且冲突的 mybatis-spring-boot-starter 依赖,避免双重扫描与配置( toast-user-interface/pom.xml )。
- 在顶层 pom.xml 的 dependencyManagement 强制覆盖 MyBatis 相关版本:
- org.mybatis:mybatis-spring:3.0.5
- org.mybatis:mybatis:3.5.19
- 保持 mybatis-plus-boot-starter 使用现有版本,通过依赖管理解决兼容性。

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>3.0.5</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.19</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

 

posted @ 2025-11-13 09:31  简单的李  阅读(14)  评论(0)    收藏  举报