菜鸟在线求助! 2023-03-28 14:44 采纳率: 46.2%
浏览 28
已结题

spring整合mybatis,用自动注入接口,报错空指针

第一次spring整合mybatis,用自动注入接口,报错空指针,不知到错哪里啦
项目结构是这样子的

img


mybatis-spring的整合代码是这样


```java
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
    <bean id="datasouce" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
    <bean id="sqlssionfactiry" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="datasouce"></property>

    </bean>
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="mapper"></property>
   </bean>
</beans>


然后很简单的就是随便写了一个接口,并在mapper.xml里面写了查询代码

```java
package mapper;

public interface shixian {
    public String select();
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.shixian">
<select id="select">
    select 'main' from t_lable where id=1
</select>

</mapper>

然后再测试是这样的

package test;

import mapper.shixian;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@Controller
public class tttt {
    @Autowired
    private shixian a;
    @Test
    public void ttttt(){
Object name=a.select();
System.out.println("name");
    }
}

报错是这样的

img

img

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-03-28 14:51
    关注

    你这单元测试类上 要开启 spring的测试框架,才能注入这个接口类

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 docker环境配置
  • ¥20 绿盟安全扫描--检测到目标站点存在javascript框架库漏洞
  • ¥30 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现