对于许多刚入坑的springBoot的小伙伴来说,@Resource和@Autowired肯定并不陌生,首先小编来说一下他两的区别。
@Resource和@Autowired都可以用来装配Bean,都可以写到set方法上或写到字段上。
@Resource:默认按照名称来装配,也就是通过name属性来装配。
@Autowired:默认按照类型来装配。
这样浅显易懂,但是小编在实际情况下遇到了一个问题
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'coursecontroller': Unsatisfied dependency expressed through field 'courseService'; nested exception is org.springframework.beans.factory
这个问题的产生,让我尝试过许多方法解决,最后终于在@Resoure上找到了错误点,我的代码是这样的:
因为@Resourse是按名称来装配的,大家肯定在想,这样写会有什么问题了,当然,问题出在这里,经过我的尝试,你只要把@Resource改成@Autowired就行,或者把
private CourseFeignClient feignClient; 改成
private CourseFeignClient courseFeignClient;
就解决了,@Resourse是根据名称去装配,经过我的总结,当你注入的时候不要省变量名,不然就会遇到bug了。