Test测试:Spring 注入失败,空指针

问题描述

使用注解无法注入实例,出现空指针异常。若不用注解,直接new一个实例,可以正常运行

控制台输出

这里写图片描述

异常发生点

    @Resource
    private UserService userService;

    private LocalDateTime time = LocalDateTime.now();

    @Test
    public void addUser() throws Exception {
        SysUser sysUser = new SysUser();
        sysUser.setUsername("admin");
        sysUser.setPassword("admin");
        sysUser.setCreateTime(time);
        sysUser.setLoginTime(time);
        sysUser.setLoginIp("192.168.1.1");
        sysUser.setLogoutTime(time);
        sysUser.setEnabled(true);
        logger.info("---sysUser:{}",sysUser);
        userService.addUser(sysUser); //这里出现空指针异常
    }

Service文件

/**
 * 业务层--用户
 */
@Service
public class UserServiceImpl implements UserService {

    @Resource
    private BaseService baseService;

    @Resource
    private UserDao userDao;

    private Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);

    /**
     * 增加:用户
     * 数据库:sys_user
     *
     * @param sysUser 用户
     */
    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void addUser(SysUser sysUser) {
        logger.info("---baseService:{}", baseService);
        try {
            logger.info("---sysUserOld:{}", sysUser);
            SysUser user = baseService.passwordHelper(sysUser);
            logger.info("---sysUserNew:{}", user);
            userDao.save(user);
        } catch (Exception e) {
            logger.info("---添加用户:出现异常");
            e.printStackTrace();
        }
    }
 }

配置文件

Spring:applicationContext.xml
    <!--配置自动扫描的包-->
    <context:annotation-config/>
    <context:component-scan base-package="com.security.demo.service"/>
    <context:component-scan base-package="com.security.demo.dao"/>

SpringMVC:spring-mvc.xml 
    <!--配置自动扫描的包-->
    <context:component-scan base-package="com.security.demo.controller"/>

包扫描没有冲突。假若包有冲突,可以看这里解释

发现关键

在处理过程中,突然发现,不通过 Test,使用Controller调用Service,又能正常执行,那么问题出现在Test文件这里。

解决

Test文件放的位置不对,test文件放在main里面去了。

maven标准目录结构
这里写图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值