今天写了一个demo,使用@Autowired注入一个demo类失败,报no bean of type错误,但是同样的DemoService作为Service层可以成功注入,唯一的区别在于DemoService上有@Service注解,后加上@Component注解后可成功注入。
这引起我的思考,@Autowired是通过spring容器自动创建对象属性方法,@Service注解告诉spring这是Service类,才能实现注入,而我的demo类并没有使用注解交给spring管理,导致无法依赖注入,@Component注解刚好可以用于无法定义属于什么类型,但又想交给spring管理时使用。