MyBatis与Spring MVC结合时,使用DAO注入出现:Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
时间: 2023-08-07 12:10:33 浏览: 186
浅析mybatis和spring整合的实现过程
这个错误通常表示在结合 MyBatis 和 Spring MVC 时,没有正确配置或注入 DAO 的依赖。在 MyBatis 和 Spring MVC 结合的情况下,DAO 需要注入一个 SqlSessionFactory 或者 SqlSessionTemplate 对象。
首先,确保你的 Spring 配置文件中已经正确配置了 SqlSessionFactory 或者 SqlSessionTemplate。你可以使用 `<bean>` 标签来定义它们,并设置正确的属性。
如果你使用的是 SqlSessionFactory,请确保你已经正确配置了 MyBatis 的 SqlSessionFactoryBean,并将其注入到 DAO 中。例如:
```xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置其他属性 -->
</bean>
<bean id="myDao" class="com.example.MyDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
```
如果你使用的是 SqlSessionTemplate,请确保你已经正确配置了 MyBatis 的 SqlSessionTemplate,并将其注入到 DAO 中。例如:
```xml
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory" />
</bean>
<bean id="myDao" class="com.example.MyDaoImpl">
<property name="sqlSessionTemplate" ref="sqlSessionTemplate" />
</bean>
```
请注意,上述示例中的 `com.example.MyDaoImpl` 是你自己实现的 DAO 类。
如果以上配置都没有问题,那么可能是其他原因导致了该错误。你可以查看详细的错误堆栈信息,以便更好地定位问题所在。
阅读全文