org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [applicationContext.xml]: Failed to instantiate [org.mybatis.spring.SqlSessionFactoryBean]: No default constructor found
时间: 2023-10-29 19:21:07 浏览: 178
这个问题的原因是`org.mybatis.spring.SqlSessionFactoryBean`类没有默认构造函数,而 Spring 在实例化对象时会默认调用默认构造函数,因此就会出现这个错误。
解决办法是在`applicationContext.xml`中显式地指定`SqlSessionFactoryBean`的构造函数。你需要提供以下三个参数:
1. 数据源(DataSource)
2. MyBatis 配置文件(mybatis-config.xml)
3. MyBatis 映射文件的位置(mapper.xml)
以下是一个例子:
```xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>
</bean>
```
在这个例子中,我们显式地指定了`SqlSessionFactoryBean`的构造函数,并提供了三个必要的参数:数据源(`dataSource`)、MyBatis 配置文件(`mybatis-config.xml`)和 MyBatis 映射文件的位置(`classpath*:mapper/**/*.xml`)。你可以根据自己的具体情况进行修改。
阅读全文