我不明白lookup
參數與@Resource
註釋的參數name
之間的差異。我看了所有關於註釋和領域等文檔ejb中的資源注入
我知道name
如何被用來注入或綁定的資源,但問題是,沒有找到解釋lookup
和name
之間的差別的任何例子。
任何人都可以給我一個這樣的例子,或告訴我他們之間的區別?
我不明白lookup
參數與@Resource
註釋的參數name
之間的差異。我看了所有關於註釋和領域等文檔ejb中的資源注入
我知道name
如何被用來注入或綁定的資源,但問題是,沒有找到解釋lookup
和name
之間的差別的任何例子。
任何人都可以給我一個這樣的例子,或告訴我他們之間的區別?
name
是java:comp/env
命名空間中的「虛擬」參考名稱。在某種程度上,該參考需要指向已經定義的「物理」資源。標準的做法是使用lookup
屬性,但產品也可以「綁定」資源引用,因此在許多產品中,特定於產品的綁定在功能上等同於名稱。 (產品特定綁定仍然很重要,因爲您不想依賴開發人員對操作環境中的數據源名稱進行硬編碼等)。
例如,您可能有@Reference(name="jdbc/myDS", lookup="jdbc/oracleDS")
,這意味着java:comp/env/myDS
將被定義爲對綁定到默認JNDI名稱空間的jdbc/oracleDS
數據源的間接查找。
又如,您可能有@DataSourceDefinition(name="derbyDS")
和@Resource(name="jdbc/myDS", lookup="java:comp/env/derbyDS")
。前者定義了一個實際的數據源(再次相對於java:comp
),後者定義了一個間接查詢。
感謝您的迴應,這是不夠清楚:/ – TheBlack
你是什麼意思的「帕」?哪一個具體部分不清楚? –
對不起,我的意思並不是意味着什麼,我無意識地添加了它,不清楚的是它們之間的區別以及何時使用另一個的區別? – TheBlack