公司一個service需要用到一些java庫,於是索性使用springboot進行開發,在看了一遍springboot教學視頻之后就開始上手。。算是邊踩坑邊進步。
在把主要邏輯部分完成之后需要將部分參數移到application.properties中去,然后按照網上一般的介紹,我選擇了最簡單的一種注入參數的方法:@Value注解。
但在實際折騰過程中,我在一個類中注入的@Value死活無法起作用, 各種查錯誤原因,甚至換了數據的類型,就是沒辦法。
最后解決問題的契機是我發現同樣的注入方法@Value在RestController類中就完全沒問題。。。。。。
在重新回顧了一下spring以及springboot的基本原理之后我突然恍然大悟:
只有成為bean以及由spring容器裝配的bean才能夠實現這樣的參數注入。
我的當前這個類雖然也被我標注了@Component,但是在另一處使用它的時候我依然像C++一樣手動new了一個。。這種實例怎么可能有自動注入的參數呢?!
這么簡單一個bug花費了我好長時間。
我認真學習java的時間不長,這次debug讓我認識到對於一門語言或者框架原理知識學習的重要性。
