今天寫了一個demo,使用@Autowired注入一個demo類失敗,報no bean of type錯誤,但是同樣的DemoService作為Service層可以成功注入,唯一的區別在於DemoService上有@Service注解,后加上@Component注解后可成功注入。
這引起我的思考,@Autowired是通過spring容器自動創建對象屬性方法,@Service注解告訴spring這是Service類,才能實現注入,而我的demo類並沒有使用注解交給spring管理,導致無法依賴注入,@Component注解剛好可以用於無法定義屬於什么類型,但又想交給spring管理時使用。