SSM框架中mapper和mapping.xml文件在同一个包下需要的配置

x33g5p2x  于2021-12-05 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(249)

前言

当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图:

因为maven项目在构建打包时,会从src/main/java中获取所有的java文件然后编译,会从src/main/resources中获取配置文件等其它文件,然后打包,

所以尽管你在Spring整合Mybatis时配置也好,在Mybatis单独的配置文件中配置也好,都是会出错的:

<!--配置SqlSessionFactory工厂-->
    <bean id="sqlSessonFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath*:com/ssm/mapper/mapping/*.xml" />
    </bean>
    <!--配置mapper接口所在包-->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ssm.mapper"/>
    </bean>

都是不会成功的!

因为在idea中,默认情况下是不会去编译src/main/java下的xml文件的!!!

方法:

这个时候你可以改变一下maven在打包时的配置就可以实现了:

pom.xml文件中添加配置:

<!--插件配置-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <!--包含了src/main/java目录下的所有xml资源配置文件-->
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!--包含了src/main/resources目录下的所有资源配置文件,有别的格式的配置文件时,不要写成**/*.xml-->
                    <include>**/*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

这个时候你就可以成功配置了!

相关文章

微信公众号

最新文章

更多