标签:property 标识 color value binding 搜索 语句 mapper 增删改
在通过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
标签:property 标识 color value binding 搜索 语句 mapper 增删改
原文地址:http://www.cnblogs.com/zhjh256/p/6086177.html