菜鸟在线求助! 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日

悬赏问题

  • ¥50 MATLAB APP 制作出现问题
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。