zoukankan      html  css  js  c++  java
  • (手写)mybatis 核心配置文件和接口不在同一包下的解决方案

    smart-sh-mybatis项目

    app.xml文件中此处配置为:

     1 <!-- 从整合包里找,org.mybatis:mybatis-spring:1.2.4 -->
     2 <!-- sqlSessionFactory -->
     3 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
     4     <!-- 数据库连接池 -->
     5     <property name="dataSource" ref="dataSource" />
     6     <!-- 加载mybatis的全局配置文件 -->
     7     <property name="configLocation" value="classpath:mybatis.xml" />
     8     <!-- 扫描对应的mapper的xml文件位置 -->
     9     <property name="mapperLocations" value="classpath*:com/smart/**/*.xml" />
    10 </bean>
    11 <!-- mapper扫描器 -->
    12 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    13     <!-- 配置mapper接口存储的包,用来扫描Mapper接口,如果需扫描多个中间可使用半角逗号隔开
    14      如果当前mapper接口和xml文件在同一个包下,则不需配置上面的mapperLocations指定扫描的xml位置-->
    15     <property name="basePackage" value="com.smart"/>
    16     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    17     <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    18     会导致数据源配置不管用,数据库连接不上。
    19     且spring 4弃用
    20     -->
    21 </bean>

    其中,
        <property name="mapperLocations" value="classpath*:com/smart/**/*.xml" />
    用来配置xml文件的扫描路径,
        <property name="basePackage" value="com.smart"/>
    用来配置接口bean的扫描路径,
    -------------------------idea中对于src/main/java代码路径下的xml配置文件在默认编译时,是是不会执行编译的,
    1. 将xml文件放到resource下面且xml的文件夹名称起名和java中对应的接口对应一致即可,目的就是在idea编译时将所对应的文件和接口bean还编译到一个文件夹下,但这不符合最初bean接口和sql.xml配置文件放置在不同包下的初衷,且不符合最初将xml和bean作为dao的基础类放到java主目录下的初衷,
    2. pom.xml中增加如下代码块:
     1 <build>
     2   <finalName>smart-sh-mybatis</finalName>
     3   <resources>
     4     <!-- idea的maven项目在编译的时候,需手动指定src/main/java下的xml配置文件被包含编译include,否则main/java下的
     5      xml配置文件,默认为不编译,因为一般情况下xml的配置文件均是存在于resources目录下,此处是将mybatis的sql.xml的
     6      映射文件放到了对应的main/java下 ,所以此处需手动指定包含即可。-->
     7     <resource>
     8       <!-- basedir maven内置变量,表示项目根目录 -->
     9       <directory>${basedir}/src/main/java</directory>
    10       <includes>
    11         <include>**/*.xml</include>
    12       </includes>
    13     </resource>
    14   </resources>
    15 </build>

    即在idea中的maven程序在执行代码编译时是走的maven编译的效果,所以此处增加pom.xml中编译时的说明即可,
    如上,即在编译build构建项目/src/main/java模块时,包含目录下的*.xml文件一起构建编译。


  • 相关阅读:
    初遇黑客
    第四周学习总结
    第三周学习总结
    关于base64编码的原理及如何在python中实现
    在python中如何将十进制小数转换成二进制
    《信息安全专业导论》第二周学习总结
    计算机科学概论速读问题
    刘谨铭的自我介绍
    师生关系
    20201318快速浏览教材提问
  • 原文地址:https://www.cnblogs.com/zh94/p/9225804.html
Copyright © 2011-2022 走看看