Intellij idea + maven + ssm 处理找不到 mapper文件

问题描述,使用idea来和maven管理工具,开发web项目。在ssm集成的时候出现集成问题

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gcoreinc.dao.BoxDetailMapper.selectBoxDetailByBoxId

根本原因是,在

1,在eclipse+maven进行ssm 集成时候,mybatis的mapper 文件和接口名字保持一致,放置在一个包下就spring框架就读取到mapper.xml文件。

Intellij idea + maven + ssm 处理找不到 mapper文件

 

 

 

2,在idea + maven 的时候再使用这个方法就不行了,因为idea 的maven工具不会读取 src/main/java/** 下面的xml文件,解决方法

 

    1)在pom.xml文件中添加以下代码,目的是告诉maven 项目管理工具,你得把 /src/main/java下面所有路径的 *.xml 文件都扫描进入classes 文件中

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
      <executions>
        <execution>
           <id>copy-xmls</id>
           <phase>process-resources</phase>
           <goals>
                 <goal>copy-resources</goal>
           </goals>
           <configuration>             
              <outputDirectory>${basedir}/target/classes</outputDirectory>
              <resources>
                  <resource>                     
                    <directory>${basedir}/src/main/java</directory>
                    <includes>
                    <include>**/*.xml</include>
                    </includes>
                  </resource>
              </resources>
            </configuration>
          </execution>
     </executions>
</plugin>

 

2)项目结构以及配置需要这样(推荐),xml文件和java代码分开容易管理

   1 在spring-mybatis 文件中以下配置

Intellij idea + maven + ssm 处理找不到 mapper文件

     2 去扫描接口:

Intellij idea + maven + ssm 处理找不到 mapper文件

     3 项目结构是这样的

  Intellij idea + maven + ssm 处理找不到 mapper文件

 

这样做是为了让项目编译之后classes的文件中有 mapper/*.xml 文件,这样才可能动态生成接口的实现类

Intellij idea + maven + ssm 处理找不到 mapper文件