zhengtao2014 2015-06-09 06:14 采纳率: 0%
浏览 6534

使用spring+Mybatis 注解无效

使用spring+Mybatis,使用spring注解,一直报空指针异常,各位麻烦看看
这个spring文件
<?xml version="1.0" encoding="UTF-8"?>
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" 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-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- 使用注解式注入 -->
<context:annotation-config />
<context:component-scan base-package="com/springMyBatis/system/service/*"/>
<context:component-scan base-package="com/springMyBatis/system/dao/*"/>

<!-- 配置数据源-->
<import resource="application-db.xml" />
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource">
        <ref bean="jdbcDataSource" />
    </property>
    <!-- MyBatis 的 XML 配置文件路径 -->
    <property name="configLocation" value="classpath:com/springMyBatis/Mybatis.xml" />
    <!-- 扫描自动生成的xml文件 --><!-- Mybatis XML映射文件 -->

    <property name="mapperLocations">
        <list><!-- Mybatis XML映射文件 -->
            <value>classpath*:com/springMyBatis/system/mapper/*.xml</value>
        </list>
    </property>

</bean>

<!-- 扫描mybatisGenerator 自动生成的  所有接口-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com/springMyBatis/system/dao"></property>
</bean>
<!-- 事务管理 -->
<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="jdbcDataSource" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
<property name="annotationClass" value="org.springframework.stereotype.Repository"/>  
<property name="basePackage" value="com.springMyBatis.system"/>  
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>  



Mybatis配置文件
<?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">

<settings>
    <!-- 全局映射器启用缓存 -->
    <setting name="cacheEnabled" value="false" />
    <!-- 查询时,关闭关联对象即时加载以提高性能 -->
    <setting name="lazyLoadingEnabled" value="false" />
    <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 -->
    <setting name="aggressiveLazyLoading" value="false" />
    <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
    <setting name="multipleResultSetsEnabled" value="true" />
    <!-- 允许使用列标签代替列名 -->
    <setting name="useColumnLabel" value="true" />
    <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
    <!-- <setting name="useGeneratedKeys" value="true" /> -->
    <!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
    <!-- <setting name="autoMappingBehavior" value="FULL" /> -->
    <!-- 对于批量更新操作缓存SQL以提高性能  -->
    <setting name="defaultExecutorType" value="BATCH" />
    <!-- 数据库超过25000秒仍未响应则超时 -->
    <!-- <setting name="defaultStatementTimeout" value="25000" /> -->
</settings>

DAO层接口
package com.springMyBatis.system.dao;

import java.util.List;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.springMyBatis.system.model.User;

@Repository
@Transactional
public interface UserDao {

public List<User> selectAllUser();

}

mapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


select * from user

service层文件
package com.springMyBatis.system.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.springMyBatis.system.dao.UserDao;
import com.springMyBatis.system.model.User;
@Service
public class Select {

@Autowired
private UserDao userdao;


public List<User> selectAllUser(){
    System.out.println(userdao);
    List<User> list=userdao.selectAllUser();
    return list;
}

userdao一直为空,求大神指导下

  • 写回答

5条回答 默认 最新

  • 我是主厨 2015-06-09 07:41
    关注

    mapper呢?贴出来看看

    评论

报告相同问题?

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝