Spring Boot 升级 3.4 报错 Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String

在升级 Spring Boot 到 3.4 版本时,遇到 Invalid value type for attribute 'factoryBeanObjectType': java.lang.String 错误,通常是由于某些 Bean 的定义或配置不兼容新版本导致的。以下是一些可能的解决方案:

检查 Bean 定义

确保所有 Bean 的定义和配置符合 Spring Boot 3.4 的要求。特别是检查 @Bean 注解的使用,确保返回类型正确。

@Bean
public MyBean myBean() {
    return new MyBean();
}

检查依赖库

某些第三方库可能尚未兼容 Spring Boot 3.4。检查项目中使用的依赖库,确保它们支持新版本。可以通过更新依赖库到最新版本来解决兼容性问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>

检查配置文件

检查 application.propertiesapplication.yml 文件,确保没有使用过时或不支持的配置项。Spring Boot 3.4 可能移除或更改了某些配置项。

# 示例配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret

清理和重建项目

有时,旧版本的缓存或编译文件可能导致问题。尝试清理项目并重新构建,以确保所有文件都是基于新版本生成的。

mvn clean install

检查 Spring 上下文

确保 Spring 上下文中的所有 Bean 都正确加载。可以通过启用调试日志来查看 Bean 的加载过程,找出可能的问题。

logging.level.org.springframework=DEBUG

更新 Spring 相关注解

某些注解在 Spring Boot 3.4 中可能有变化。检查并更新所有相关注解,确保它们符合新版本的规范。

@Configuration
public class MyConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

通过以上步骤,可以逐步排查并解决 Invalid value type for attribute 'factoryBeanObjectType': java.lang.String 错误,确保项目顺利升级到 Spring Boot 3.4。

最终发现是 Mybatis-Plus 版本不兼容 需要同步引入最新的mybatis-spring包

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.5.9</version>
  <exclusions>
      <exclusion>
          <artifactId>mybatis-spring</artifactId>
          <groupId>org.mybatis</groupId>
      </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>3.0.3</version>
</dependency>

之后顺利启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值