001【Bug】记录-SpringBoot3.1搭建问题

001【Bug】记录-SpringBoot3.1搭建问题

本系列文章记录日常开发遇到的Bug,为类似问题的解决提供一点案例或思路



问题描述

面对spring3.1版本的上线,需要去探索一下,这是有必要的,不管怎样终有一天是要升级的嘛!当然可想而知一大堆错误不可避免。

  • 这里有和之前版本类似的错误,
  • 也有和之前版本不一样的错误,
  • 有yml 文件配置的错误
  • 更多的是springboot版本引发其他maven包版本的错误

但是目前来看,就建立起完善的项目来说,都是已经可以解决的错误了。下面针对几个问题简要记录一下

1 springboot3.1 启动报错

问题1 Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.

Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.

这个更Idea 项目设置有关,问题不大,暂时不用管

问题2 ‘java.lang‘ is declared in module ‘java.base‘, which is not in the module graph

问题2 java: 找不到符号 符号: 方法 getMaxId() 位置: 类型为com.easy.id.entity.Segment的变量 segment

Package ‘java.lang‘ is declared in module ‘java.base‘, which is not in the module graph

以上两个问题其实是伴生的
这个跟 Java版本 有关,就是使用高版本的Java 如Java 17+时,模块依赖优点变更,这个通过快捷键代码提示 加编译参数即可

问题3 Failed to load driver class com.mysql.cj.jdbc.Driver from HikariConfig class

com.zaxxer.hikari.HikariConfig : Failed to load driver class com.mysql.cj.jdbc.Driver from HikariConfig class classloader jdk.internal.loader.ClassLoaders$AppClassLoader@63947c6b

这个跟 pom.xml 有关,把connecter-java-mysql 的版本 改成和您使用的 mysql数据库的版本相对应,笔者是需要升级到 8.0

问题4 configuration’ and ‘configLocation’ can not specified with together

configuration' and 'configLocation' can not specified with together 

这个跟 application.yml 文件对于 mybatis 的配置有关 简单来说就如 报错提示所说。解决办法,就是把 mybatis.configuration 的配置 通过新建 mybatisConfig.xml 转移出来(类似于SSM 项目配置 dao-config.xml),在通过 config-location指向这个配置文件的 项目文件夹所在位置。博客园里有篇文章看看就能改了。

IllegalStateException: Property ‘configuration’ and ‘configLocation’ can not specified with together - 梅子猪 - 博客园 (cnblogs.com)

问题5 Factory method ‘sqlSessionFactory’ threw exception with message: Failed to parse mapping resource: 'file

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\CodePractice\Backend\Java\JavaBigData\knowleadge\Part06\springbootv3.1\target\classes\mapper\SchoolstudentMapper.xml]'

这个最狠,除了面的关键信息,下边报错一大堆,指向提示乱七八糟,看不出什么玩意,很容易说成版本升级导致错误,安慰一下不升级了就完事了。
实际上 跟 application.yml 配置文件 有关,问题还是处在 mybatis 的配置上,笔者没有把 com/cloud/Exam 即项目的主包名添加完全正确导致错误。

mybaits:
	mapperLocations: classpath:com/cloud/Exam/mapper/*.xml

1.2 application.yml

# 服务端口
server:
  port: 8082

# 数据库连接串
spring:
  application:
    name: springboot3.1
  thymeleaf:
    cache: false    # 禁用 thymeleaf 缓存
  datasource:
    url: jdbc:mysql://localhost:3306/dbschoolexam?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: 123456
  servlet:
    multipart:
      # 是否支持批量上传   (默认值 true)
      enabled: true
      # 上传文件的临时目录 (一般情况下不用特意修改)
      location:
      # 上传文件最大为 1M (默认值 1M 根据自身业务自行控制即可)
      max-file-size: 1048576
      # 上传请求最大为 10M(默认值10M 根据自身业务自行控制即可)
      max-request-size: 10485760
      # 文件大小阈值,当大于这个阈值时将写入到磁盘,否则存在内存中,
      # (默认值0 一般情况下不用特意修改)
      file-size-threshold: 0
      # 判断是否要延迟解析文件(相当于懒加载,一般情况下不用特意修改)
      resolve-lazily: false
  data:
    redis:
      lettuce:
        pool:
          max-active: 8   # 连接池最⼤连接数(使⽤负值表示没有限制) 默认 8
          max-wait: -1    # 连接池最⼤阻塞等待时间(使⽤负值表示没有限制) 默认 -1
          max-idle: 8     # 连接池中的最⼤空闲连接 默认 8
          min-idle: 0     # 连接池中的最⼩空闲连接 默认 0
      database: 0           # Redis 数据库索引(默认为 0)
      host: 192.168.80.20   # Redis 服务器地址
      port: 6379            # Redis 服务器连接密码(默认为空)
      password: 123456

# mybatis配置
mybatis:
  mapperLocations: classpath:com/cloud/Exam/mapper/*.xml
  config-location: classpath:mybatisConfig.xml
  type-aliases-package: com.cloud.Exam.entity


# dao层扫配置
mapper:
  # 主键自增回写方法,默认值MYSQL,详细说明请看文档
  identity: MYSQL
  mappers: tk.mybatis.mapper.common.BaseMapper
  # 设置 insert 和 update 中,是否判断字符串类型!=''
  not-empty: true
  # 枚举按简单类型处理(枚举按简单类型处理,如果有枚举字段则需要加上该配置才会做映射)
  enum-as-simple-type: true

# 如果想看到mybatis日志需要做如下配置  com.cloud.springbootv3.1.dao是Mapper接口的路径
# logging.level.*=debug
logging:
  level.*: debug

# 分页配置
pagehelper:
  helper-dialect: mysql
  # pagehelper.reasonable:分页合理化参数,默认值为false。
  # 当该参数设置为 true 时,pageNum<=0 时会查询第一页,
  # pageNum>pages(超过总数时),会查询最后一页。
  # 默认false 时,直接根据参数进行查询。
  reasonable: false
  # support-methods-arguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,
  # 分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
  support-methods-arguments: true
  params: count=countSql

ip: 192.168.80.20 # 根据自己FastDFS服务器修改
fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image: #缩略图生成参数
    width: 150
    height: 150
  tracker-list:
    - 192.168.80.20:22122
  web-server-url: http://${ip}:88/

1.3 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值