JavaEE中的依賴性管理

無論你多麼偉大你都不可能獨立完成一項偉大的任務,JavaEE組件也是一樣的,沒有那個組件可以獨立完成所有的任務。一個組件在工作的時候往往需要其他資源的幫助,那麼在尋求幫助的過程中就涉及到這次我們要說的依賴性管理的問題。比如一個簡單的會話bean它需要借用JDBC的數據源持久化數據,再比如一個消息驅動Bean需要往JMS消息隊列中傳遞消息。這裏都涉及到如何在組件中獲取服務器中的資源的問題。

和現實生活中一樣你需要火警、匪警疑惑120幫忙那麼只需要撥打電話號碼就可以了,但是前提是你首先要知道這些電話號碼。映射到JavaEE當中就是服務器中有很多資源,開發者需要在程序中定義引用的資源,然後再去使用。在組件中對資源的引用可以動態的從程序代碼中解析,也可以在該組件實例化的時候由容器自動解析(依賴注入?)。

資源的引用由兩部分構成:名稱(name)和目標(target)類似於json中的key和value的關係,前面的名字主要是給人看的,後面的target纔是真正需要去服務器中找尋的資源。有了名字和目標就相當於知道了匪警或者是火警的電話剩下的就需要把你的信息告訴對方,鑰匙落家了火警就知道要拿液壓鉗,遇到歹徒了匪警就知道帶槍。換成官方的語言就是每個資源引用需要一組特定於它所執行資源類型的不同信息。通常一個引用由以下註解聲明:@Resource、@EJB、@PersistenceContext或者@PersistenceUnit。和Spring的註解類似可以放在你想要放到的位置(類、字段或者setter方法)不同的位置據定了服務器是否會自動解析(加載)。

後面將逐個介紹不同類型的依賴類型:依賴性查找、依賴性注入、聲明性依賴,其實本質上他們都是類似的都是通過特定的信息找到程序所需要的外部資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章