jdk_ying 2016-08-25 04:45 采纳率: 0%
浏览 12498

spring+mybatis 配置mapper扫描无法注入

 applicationContext.xml
 <?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"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/aop
                        http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--获得属性文件里面的键值  -->                  
    <!-- <context:property-placeholder location="classpath*:*.properties" /> -->
    <!--扫描需要容器管理的类-->                   
    <context:component-scan base-package="com.nb"/> 
    <!-- 数据源 -->
    <bean name="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://127.0.0.1:3306/mynb?useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
        <property name="username">
            <value>root</value>
        </property>
        <property name="password">
            <value>123456</value>
        </property>
    </bean>
    <!-- ================================ MyBatis SqlSession配置 ========================================= -->
    <!-- 使用SqlSessionFactoryBean工厂产生SqlSession对象,方便后期注入Dao -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!--  <property name="configLocation" value="classpath:configuration.xml"></property>-->
        <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
        <property name="mapperLocations" value="classpath*:com/nb/dao/*.xml" />
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.nb.dao" />
        <!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> -->        
    </bean>
    <!-- ================================= 事务控制相关 ============================================= -->
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="delete*" propagation="REQUIRED" read-only="false" 
                       rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/>
            <tx:method name="insert*" propagation="REQUIRED" read-only="false" 
                       rollback-for="java.lang.RuntimeException" />
            <tx:method name="update*" propagation="REQUIRED" read-only="false" 
                       rollback-for="java.lang.Exception" />

            <tx:method name="find*" propagation="SUPPORTS"/>
            <tx:method name="get*" propagation="SUPPORTS"/>
            <tx:method name="select*" propagation="SUPPORTS"/>
        </tx:attributes>
    </tx:advice>    
    <aop:config>
        <aop:pointcut id="pc" expression="execution(* *.*.*(..))" />
        <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />
    </aop:config>
</beans>



请问是什么原因呢,帮忙看看,谢谢
  • 写回答

5条回答 默认 最新

  • jdk_ying 2016-08-25 04:44
    关注

    测试类:
    package com.nb.service;

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

    import com.nb.domain.ent.User;

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration({ "/spring/applicationContext.xml" })
    public class UserManagerServiceTest {
    @Autowired
    IUserManagerService userManagerService;

    @Test
    public void testAddUser() {
        User user = new User();
        user.setUserName("jack");
        user.setPassword("123456");
        userManagerService.addUser(user);
    }
    

    }

     实现类:
     package com.nb.service;
    
    import java.util.UUID;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import com.nb.dao.UserMapper;
    import com.nb.domain.ent.User;
    
    @Service
    @Transactional
    public class UserManagerService implements IUserManagerService {
    
        @Autowired
        public UserMapper userMapper;
    
        @Override
        public int addUser(User user) {
            user.setId(UUID.randomUUID().toString());
            user.setUserName(user.getUserName());
            user.setPassword(user.getPassword());
            userMapper.insert(user);
            return userMapper.insert(user);
        }
    
    
    }
    
    

    dao:
    package com.nb.dao;

    import com.nb.domain.ent.User;

    public interface UserMapper {
    int insert(User record);

    int insertSelective(User record);
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示