什么意思java:comp/env
?
看起来像什么:
Context envContext = (Context)initContext.lookup("java:comp/env");
怎么办?
我了解查询如下:
(DataSource)envContext.lookup("jdbc/MyDatasource")
MyDatasource
在context.xml
或中查找名称,web.xml
以获取数据库的URL。是这样吗 ?!! 但是前者看起来是什么?
什么意思java:comp/env
?
看起来像什么:
Context envContext = (Context)initContext.lookup("java:comp/env");
怎么办?
我了解查询如下:
(DataSource)envContext.lookup("jdbc/MyDatasource")
MyDatasource
在context.xml
或中查找名称,web.xml
以获取数据库的URL。是这样吗 ?!! 但是前者看起来是什么?
Answers:
java:comp/env
是JNDI树中的节点,您可以在其中找到当前Java EE组件(Web应用程序或EJB)的属性。
Context envContext = (Context)initContext.lookup("java:comp/env");
允许定义直接指向此节点的变量。它允许做
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
而不是
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
相对路径而不是绝对路径。这就是它的用途。
java:comp/env
。
java:comp/env
。例如,请参见tomcat.apache.org/tomcat-7.0-doc/…。EJB具有相同的功能。
这是一个内存中全局哈希表,您可以在其中按名称存储全局变量。
“ java:” URL方案使JNDI查找一个javaURLContextFactory
类,该类通常由您的应用容器提供,例如,这是Tomcat的实现javadoc