首页 > 代码库 > mybatis同时启用mapperscanner和传统DAO
mybatis同时启用mapperscanner和传统DAO
在通过MapperScannerConfigurer启用了mybatis的映射器之后,默认情况下,在basePackage下的所有接口类都会被无条件的自动代理,如下所示:
<!--mapper 扫描配置 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--basePackage指定要扫描的包,在此包之下的映射器都会被 搜索到。可指定多个包,包与包之间用逗号或分号分隔 --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> <property name="basePackage" value="com.ld.platform.*.dao" /> </bean>
此时,无论com.ld.platform.*.dao下的类是否具有对应的实现类,在自动注入的时候,mybatis都会根据完整类型标识符去寻找相应的mapper.xml,如果找不到,则会报mybatis BindingException,有些时候,对于复杂的SQL语句,无法通过工具自动生成mapper,此时需要手工编写SQL。
如果希望这些SQL和之前版本一样通过@SqlSession进行增删改的话,需要将这些类放在basePackage匹配不到的路径。这样mybatis就不会自动去生成代理类了。
mybatis同时启用mapperscanner和传统DAO
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。