开发者社区> 问答> 正文

使用mybatis配置dao,在service层中注入dao组件会报错?报错

首先我在项目中有dao层组件(接口和xml映射文件),service层有service接口和对应的实现serviceImpl.

dao接口上添加注解:

@Repository("userMapper")

serviceImpl上添加注解:

@Service("userService")

1.在spring-mybatis.xml配置文件中首先配置了dataSource,然后配置了sqlSessionFactory,紧接着配置了MapperScnnerConfigurer.用于扫描扫描dao组件并注册到容器中.代码如下:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="mapperLocations" value="classpath:org/panda/mapping/*.xml"/>

</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="org.panda.dao"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>//省略druid数据源和事物设置

2.在spring.xml中扫描

<mvc:annotation-driven />
<context:component-scan base-package="org.panda.service.impl"></context:component-scan>

3.在spring-mvc.xml中扫描:

<mvc:annotation-driven />
<context:component-scan base-package="org.panda.controller" />

//此处省略视图解析器配置

综合上述,出现问题:

在往serviceImpl中注入dao时会报出这样一个找不到的错误,而实际项目运行的时候不会报错,我想知道这个问题怎么解决呢?

                                                               #现在此处感谢大神的不吝赐教.

展开
收起
爱吃鱼的程序员 2020-06-07 22:38:21 898 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你把spring配置注解最外层包路径应该是动态代理的问题吧,看来只能通过ide配置取消错误提示了.dao层是interface,实现类是通过代理生成的,估计这种方法行不通呀

    你用的代理方式,会在运行时生成代理类。IDEA还没智能到能检测里运行时生成的类。

    原来如此,那应该是明白了

    2020-06-07 22:38:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载