Spring之Service层依赖注入为空(空指针异常)

可以看到此处依赖注入为空
业务层依赖注入部分代码
控制层代码

 @ApiOperation(value = "记录管理员的操作日志")
    @GetMapping("/setOperationLog")
    public void test(HttpServletRequest request,
                     Long id,
                     String name,
                     String unifiedSource) {
    OperationLogService operationLogService=new OperationLogServiceImpl();
    operationLogService.saveOperation(request,id,name,unifiedSource);
    }

问题原因猜测
springboot项目在启动之后,由于Service层标明了@Service注解,Spring就会为其在容器中创建Bean对象,此时Spring会帮助其加载与装配,但由于我在控制层调用的Service层对象是由自己手动new的,并不是由Spring接管的代理对象,所以手动new的对象内部的依赖注入为空。

解决方案
在控制层使用Spring容器中的Service层对象,即在控制层中采用依赖注入的方式使用Service层对象,而不是自己手动创建,完成后的代码:

    @Autowired
    private OperationLogService operationLogService;

    @ApiOperation(value = "记录管理员的操作日志")
    @GetMapping("/setOperationLog")
    public void test(HttpServletRequest request,
                     Long id,
                     String name,
                     String unifiedSource) {
    operationLogService.saveOperation(request,id,name,unifiedSource);

问题解决,再次debug发现Service层依赖注入成功

算是低级错误了,猜想原因如若不对,还请大家指正,谢谢

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值