Spring boot MyBatis:将映射器xml文件放在java下的映射器接口旁边
我正在寻找一种方法,将MapperXML文件从“资源”下移动到“java”文件夹下。我希望这是可能的,因为那样interface.java文件和mapper.xml文件将并排出现 我用的是弹簧靴 application.properties:Spring boot MyBatis:将映射器xml文件放在java下的映射器接口旁边,spring-boot,mybatis,Spring Boot,Mybatis,我正在寻找一种方法,将MapperXML文件从“资源”下移动到“java”文件夹下。我希望这是可能的,因为那样interface.java文件和mapper.xml文件将并排出现 我用的是弹簧靴 application.properties: mybatis.config-locations = classpath:mybatis-config.xml 参考资料/mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> &
mybatis.config-locations = classpath:mybatis-config.xml
参考资料/mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper url="file:///home/abc/Projects/myproject/myapp/src/main/java/com/abc/services/myservice/MyMapper.xml"/>
</mappers>
</configuration>
当我运行应用程序时,出现“未找到”错误:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.abc.bm.services.myservice.MyMapper.findAll
有没有办法实现这一点?您需要将资源文件从源文件夹复制到目标输出文件夹 对于maven,可以使用
maven资源插件
:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources01</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<encoding>UTF-8</encoding>
<resources>
<resource>
<directory>${basedir}/src</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
或者,我使用
资源
属性,如:
<mappers>
<mapper resource="mappers/account.xml" />
</mappers>
这是一个非常适合我的想法,使用相对路径
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
org.springframework.boot
springbootmaven插件
src/main/resources
src/main/java
**/*.爪哇
@Roman_Konova,成功了,谢谢!!我唯一需要更改的是${basedir}/src/main/java(就像在gradle配置中一样)。我还将其添加到IntelliJ中“启动前”部分的运行配置中
<mappers>
<mapper resource="mappers/account.xml" />
</mappers>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>