今天在搭建springboot整合mybatis的时候,在测试类中测试增删改查,然而mapper对象一直无法自动注入,特此记录一下。
我是通过properties进行配置的,关于mybatis部分的配置只需要按照如下配置即可。

mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.xxx.xxx.bean

其中,classpath指的是resources目录,我在resources目录下还建立了一个mapper文件夹,用于存放mapper.xml文件。
我刚开始就只是配置了这里,然后就报错了,接下来还需要配置一个地方,在pom.xml文件中加入如下配置。

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
</resources>

这个直接放到build标签中就行了,即按照如下方式填写。

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>

            <!--MyBatis自动生成工具插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
    </build>

最后就可以在测试类中测试,不过需要注意的是,在测试类上还要加一个扫描,不然也是找不到mapper的。

@MapperScan("com.xxx.xxx.mapper")

其他还有很多情况无法自动注入mapper,这里我就不记录了。
另外,这里需要使用@resource注解,而不是@autowired注解,尽管@autowired注解也可以使用,但是会标红。
我目前对@resource注解和@autowired注解还不太了解,后续将深入分析下这两个注解的含义和区别。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐