[英]resource injection in ejb
我不明白@Resource
批注的lookup
參數和name
參數之間的區別。 我閱讀了有關注釋及其字段等的所有文檔。
我知道如何使用name
來注入或綁定資源,但是問題是沒有找到任何示例來解釋lookup
和name
之間的區別。
誰能給我一個這樣的例子,或者告訴我他們之間的區別?
name
是java:comp/env
命名空間中的“虛擬”引用名稱。 在某種程度上,該引用需要指向已定義的“物理”資源。 執行此操作的標准方法是使用lookup
屬性,但是產品也將具有“綁定”資源引用的方法,因此在許多產品中,特定於產品的綁定在功能上等同於名稱。 (特定於產品的綁定仍然很重要,因為您不想依靠開發人員從操作環境中硬編碼數據源名稱,等等。)
例如,您可能具有@Reference(name="jdbc/myDS", lookup="jdbc/oracleDS")
,這意味着java:comp/env/myDS
將被定義為對以下數據庫的jdbc/oracleDS
數據源的間接查找:被綁定到默認的JNDI名稱空間。
再舉一個例子,您可能具有@DataSourceDefinition(name="derbyDS")
和@Resource(name="jdbc/myDS", lookup="java:comp/env/derbyDS")
。 前者定義了實際的數據源(再次相對於java:comp
),而后者定義了對它的間接查找。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.