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

阮少爷 发布于 2017/11/18 11:58
阅读 3K+
收藏 2

首先我在项目中有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时会报出这样一个找不到的错误,而实际项目运行的时候不会报错,我想知道这个问题怎么解决呢?

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

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

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

阮少爷
阮少爷
原来如此,那应该是明白了
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部