java:comp/env/ejb/SimpleUser是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:28:05
关于EJB的实体Bean中的一段代码,里面的java:comp/env/ejb/SimpleUser是什么意思?
private BookHome lookupBook() throws NamingException
{
Context initial = new InitialContext(); //构造一个初始上下文
Object objref = initial.lookup("java:comp/env/ejb/SimpleBook");
return (BookHome) objref;
}

private UserHome lookupUser() throws NamingException
{
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleUser");
return (UserHome) objref;
}

private BorrowHome lookupBorrow() throws NamingException
{
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleBorrow");
return (BorrowHome) objref;
}

这是J2EE的JNDI的规范的用法,
void lookup(String sName,Object object);――查找:返回目录总的一个对象
JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
JNDI优点:
包含了大量的命名和目录服务,使用通用接口来访问不同种类(java类和数据源)的服务;
可以同时连接到多个命名或目录服务上;
建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必指导对象或资源的物理ID。
NDI与JDBC:
JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个纪录,同时返回数据库连接建立所必须的信息。
代码示例:
try{
Context cntxt = new InitialContext();
DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt");
}
catch(NamingException ne){
...
}
你的程序也就是在上下文"java:comp/env/ejb/SimpleBook"中通过lookup取得对象
Object objref = initial.lookup("java:comp/env/ejb/SimpleBook");
return (BookHome) objref;
这是同Java对象BookHome关联起来,得到BookHome对象的jndi规范的用法