sap*_*Pro 77 java jndi java-ee
是什么意思java:comp/env?
看起来像什么:
Context envContext = (Context)initContext.lookup("java:comp/env");
Run Code Online (Sandbox Code Playgroud)
做什么?
我明白这样的查找:
(DataSource)envContext.lookup("jdbc/MyDatasource")
Run Code Online (Sandbox Code Playgroud)
MyDatasource在context.xml或中查找名称web.xml以获取数据库的URL.是这样吗 ?!但是前者看起来做了什么?
JB *_*zet 67
java:comp/env 是JNDI树中的节点,您可以在其中找到当前Java EE组件(Web应用程序或EJB)的属性.
Context envContext = (Context)initContext.lookup("java:comp/env");
Run Code Online (Sandbox Code Playgroud)
允许定义直接指向此节点的变量.它允许做
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
Run Code Online (Sandbox Code Playgroud)
而不是
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
Run Code Online (Sandbox Code Playgroud)
相对路径而不是绝对路径.这就是它的用途.
它是一个内存中的全局哈希表,您可以在其中按名称存储全局变量.
"java:"url方案使JNDI查找一个javaURLContextFactory类,该类通常由应用程序容器提供,例如这里是Tomcat的实现javadoc
另请参见NamingManager.getURLContext
| 归档时间: |
|
| 查看次数: |
76872 次 |
| 最近记录: |