首页 » java

Spring Boot报java.lang.IllegalArgumentException:Property 'sqlSessionFactory' or 'sqlSessionTemplate'

   发表于:java评论 (0)   热度:16560

Spring Boot报错 java.lang.IllegalArgumentException:Property 'sqlSessionFactory' or 'sqlSessionTemplate'

在一个springboot demo启动的时候出现以下错误 ,

  从网上查找 说是 Mapper 路径的问题 , 查找了一下 发现我在两个地方配置了 Mapper路径 错误, 是的程序无法加载 mapper文件导致的 。

1、启动类 里配置的 (@MapperScan("com.example.demo.dao.mapper")),这里开始配置错了

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@EnableTransactionManagement
//@MapperScan("com.example.demo.dao.mapper")
public class Demo7Application {

	public static void main(String[] args) {
		SpringApplication.run(Demo7Application.class, args);
	}
}

2、application.yml 里配置的路径

mybatis:
  mapper-locations: classpath*:com/example/demo/dao/mapper/*.xml

 这里的错误主要是因为  启动类 里配置的 mapper 路径错误导致的 , 我第一  把启动类里的 mapper路径改正确 , 在启动错误消失, 第二  把重复的 mapper  路径去掉一个 这里 把启动类的mapper路径去掉, 再次启动ok没问题。 

在搭建或使用Spring Boot项目过程中,我们在启动项目时可能会遇到如下异常:

我在遇到此类情况时,经过以下操作使我的项目恢复了正常:

1、检查mapper路径是否正确。若正确,查看在@EnableAutoConfiguration注解后,是否添加了exclude,若有添加,尝试删除。

备注:@EnableAutoConfiguration 作用是从classpath中搜索所有META-INF/spring.factories配置文件然后,将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器;@EnableAutoConfiguration还可以进行排除,排除方式有2中,一是根据class来排除(exclude),二是根据class name(excludeName)来排除。在本项目配置中排除了DataSourceAutoConfiguration类(如下图),导致此类没有正确加载

2、在接口实现类中是否继承了SqlSessionDaoSupport,若有继承,尝试删除此继承。

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。