SpringBoot+mybatis,启动报错Failed to determine suitable jdbc url 或者 Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required
问题简介
在更替springboot版本时可能会出现此问题
可能试过的方法有:
- 需要把启动类放到最外层
- 去掉冲突的jar包
- springboot 1.1.1 升级到 1.3.2 源代码里面改变了XXX,需要加XX注解
- 解决之后有出现了 Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required 这种令人措手不及的问题
但是问题可能依然存在,项目无法启动,简直让人崩溃。
如果上述四个解决办法依然没有解决,那么你就得把目光放到你的spring配置文件上。
解决办法
如果你的yml文件里面的datasource是这样配置的:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
应该改为:
spring:
datasource:
jdbc: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
如果要为datasource添加dbname:
spring:
datasource:
name: product
jdbc: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
直接写name ,而不是db-name
无论你得springboot版本是 1.1.1 还是 1.3.2 都可以解决
提示
如果你遇到的是这个问题:
Failed to determine suitable jdbc url
而又在启动类添加了这个注解:
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
则会引发以下问题:
Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required
则是治标不治本。
所以这个注解后的(exclude = DataSourceAutoConfiguration.class)不加也罢
在错误提示中,我们不难发现,spring boot org.springframework.boot.autoconfigure.jdbc.DataSourceProperties无法找到datasource下的定义的url数据库链接而造成,所以一定要注意spring的配置文件的写法。