如何使用Spring的SimpleNamingContextBuilder
作爲JNDI提供程序知道要在其目錄中搜索資源的應用程序?什麼將應用程序鏈接到Spring命名目錄?例如,在早期的answer中的JndiObjectFactoryBean
bean如何知道在Spring目錄中找到資源my-db
? JndiObjectFactoryBean
是否需要一個上下文環境,並將屬性java.naming.factory.initial
設置爲接口InitialContextFactory
的某些實現?當使用SimpleNamingContextBuilder
作爲JNDI提供者時,java.naming.factory.initial
的值應該是多少?如何知道使用Spring的SimpleNamingContextBuilder來搜索其目錄中的資源?
6
A
回答
8
Java運行時類NamingManager
充當Java應用程序與其命名目錄之間的鏈接。當一個SimpleNamingContextBuilder
activates,它將自己安裝到NamingManager
的靜態成員InitialContextFactoryBuilder
。當應用程序創建InitialContext
以檢索JNDI上下文時,類InitialContext
將代表指定給NamingManager,然後請求IntialContextFactoryBuilder
(在此例中爲SimpleNamingContextBuilder
)創建IntialContextFactory
,最終創建InitialContext
。
JndiObjectFactoryBean
因爲SimpleNamingContextBuilder
提供InitialContextFactory
到NamingManager
和JndiObjectFactoryBean
使用NamingManager
檢索其資源並不需要一個明確的上下文環境。因此,在之前的回答中,JndiObjectFactoryBean
「知道」要在Spring命名目錄中搜索資源my-db
,因爲SimpleNamingContextBuilder
已將自己建立爲NamingManager
中的JNDI提供程序。
13
簡而言之,如果想在單元測試中用模擬InitialContext模擬JNDI樹,可以使用SimpleNamingContextBuilder。我在測試的啓動方法中實例化了SimpleNamingContextBuildeit,併成功創建了一個內存中的InitialContext。 例如在彈簧測試類..
@BeforeClass
public static void setupJndi() throws Exception {
SimpleNamingContextBuilder.emptyActivatedContextBuilder();
Context context = new InitialContext();
context.bind("java:comp/env/jms/ConnectionFactory",myJmsConnectionFactory);
}
相關問題
- 1. Spring的SimpleNamingContextBuilder和LDAP
- 2. 如何知道Aurelia中valueChanged的來源?
- 3. 軌道搜索嵌套資源
- 4. 如何使主/來源知道子樹
- 5. 如何在c目錄及其子目錄中搜索文件?
- 6. gdb搜索源目錄
- 7. Google Analytics如何知道HTTPS入站自然搜索流量的來源?
- 8. 如何知道項目的lib目錄?
- 9. 如何從spring applicationContext到達其他項目的資源?
- 10. 如何使用Jetty訪問我的WAR目錄中的資源?
- 11. Twitter如何知道TWRequest的來源?
- 12. 如何知道log4j輸出的來源?
- 13. 如何使@WebService spring知道
- 14. 如何獲取maven中的資源目錄以便使用?
- 15. 如何知道我在使用BFS(廣度優先搜索)的搜索級別?
- 16. IntelliJ如何知道目錄是「源」還是「測試源」?
- 17. 如何搜索Artifactory API中的目錄?
- 18. 返回資源ID,如果我知道資源的名稱
- 19. 如何用TFS團隊資源管理器搜索項目?
- 20. 使用py2app資源的目錄
- 21. 如何從項目資源槽圖像框中搜索圖像
- 22. 引用來自c#中其他資源的嵌入式資源
- 23. Android調試 - 如何知道使用什麼資源文件?
- 24. 我可以使用額外的目錄來分組Android資源
- 25. 如何搜索包含未知目錄的文件並將其刪除?
- 26. 如何使用$ _SERVER知道您的網站的根目錄?
- 27. Grails Facebook使用spring安全登錄 - 如何知道登錄的用戶名
- 28. 如何搜索目錄IOS
- 29. 任何人都知道如何使用文本框來搜索DataGridView?
- 30. 如何訪問Spring Security的登錄頁面中的資源包?
很好的例子!這說明了我的觀點,即當你激活一個'SimpleNamingContextBuilder'時,它將自己安裝爲默認的JNDI上下文。 – 2011-04-19 18:02:12