SpringBoot 2.2.x 的一些坑

背景:

  druid版本:1.1.10;

  springboot版本:2.2.5 RELEASE

坑一:

报错:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

 2.2.x版本下的Springboot已经不支持 “com.mysql.jdbc.Driver”这个驱动了,这个驱动是对应MySql 5.5.x版本的;需要换上MySql 5.6.x版本的驱动,即:“com.mysql.cj.jdbc.Driver”,因此,我们只需要修改一下配置文件,换一个驱动,然后设置一下时区(5.6.x版本不设置时区会报错)

参考配置(yml格式):

# druid
spring:
  datasource: # 数据库源配置
    url: jdbc:mysql://127.0.0.1:3306/honeynet?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource # 数据库连接源类型
    tomcat: # tomcat 数据库连接配置
      max-active: 1000 # 数据库最大连接数
      initial-size: 100 # 数据库初始连接数
      max-wait: 60000 # 配置获取连接等待超时的时间
      min-idle: 150 # 需要维护的最小空闲连接数目
      time-between-eviction-runs-millis: 60000 # 间隔多久检测一次空闲连接数目
      min-evictable-idle-time-millis: 300000 # 每条数据库连接最小生存时间
      test-on-borrow: false # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个,注意: 设置为true后如果要生效,validation-query参数必须设置为非空字符串
      test-while-idle: false # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除.注意: 设置为true后如果要生效,validation-query参数必须设置为非空字符串
      test-on-return: false # 指明是否在归还到池中前进行检验,注意: 设置为true后如果要生效, validation-query参数必须设置为非空字符串
      validation-query: select 1 # SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录
      num-tests-per-eviction-run: 3 # 在每次空闲连接回收器线程(如果有)运行时检查的连接数量,默认值就是3.

坑二:

 使用mybatis时,给dao层接口打注解的时候@MapperScan和@Mapper一个即可,前者能同时指定多个mapper文件;

并且写SQL的时候,推荐xml文件和注解一起用,简单的SQL用注解,复杂的SQL用xml,这样可读性强。

参考配置(yml格式)

mybatis:
  type-aliases-package: com.xxx.xxx
  configuration:
    map-underscore-to-camel-case: true
    default-fetch-size: 100
    default-statement-timeout: 3000
  mapper-locations: classpath:/mapper/*.xml

坑三:

报错:com.alibaba.druid.pool.DruidDataSource   : testWhileIdle is true, validationQuery not set.....

解决方案:需要添加和修改某些配置项 (https://blog.csdn.net/HXNLYW/article/details/86672024)
 

你可能感兴趣的:(坑)