本来已经整合了spring和springmvc,然后我再添加了mybatis的依赖,数据库的配置等等。在test类里mybatis可以单独运作。但是和spring整合的时候就出现问题.
这是我的目录结构
我的dao中的类如下
@Repository
public interface IAccountDao
{
@Select("select * from account")
List<Account> findAll();
@Insert("insert into account(name,money) values (#{name},#{money})")
void saveAccount(Account account);
}
service中的类如下
@Service("accountService")
public class AccountServiceImpl implements IAccountService
{
@Autowired
private IAccountDao accountDao;
@Override
public List<Account> findAll()
{
System.out.println("findAll_service");
return accountDao.findAll();
}
@Override
public void saveAccount(Account account)
{
System.out.println("saveAccount_service");
accountDao.saveAccount(account);
}
}
而且我的spring的配置文件已经按照教程中那样引入了mybatis的工厂什么的
<?xml version="1.0" encoding="UTF-8"?>
<beans 一堆约束省略了>
<context:component-scan base-package="com.HSY">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 整合Mybatis-->
<!-- 配置C3P0的连接池对象 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ssm" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置SqlSession的工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置扫描dao的包-->
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.HSY.dao"/>
</bean>
</beans>
SqlMapConfig的数据库配置也配了,但是最后仍然报错
beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.HSY.dao.IAccountDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
请问大神们怎么解决