我是Java EE世界的新手,在我的应用程序中,我想连接到数据库。我可以使用以下代码完成此任务,但是有人可以向我解释吗?每行做什么?
码:
try {
InitialContext initContext = new InitialContext();
Context env = (Context) initContext.lookup("java:comp/env");
ds = (DataSource) env.lookup("jdbc/test2");
} catch (NamingException e) {
throw new ServletException();
}
我还发现,可以在我的JSP中使用tomcat使用下面的注释,该注释可以实现与上面相同的结果。我可以在任何Web服务器(例如GlassFish或Jboos)上使用此注释吗?
注释代码:
@Resource(name = "jdbc/test2")
private DataSource ds;
最佳答案
Java命名和目录接口™(JNDI)是一个应用程序
提供命名和目录的编程接口(API)
使用Java™编程编写的应用程序的功能
语言。 1Context
对象提供了以下方法:将名称绑定到对象,从对象解除绑定名称,重命名对象并列出绑定。
JDNI执行相对于上下文的所有命名操作。因此,JDNI定义了InitialContext
,它为命名和目录操作提供了起点。一旦有了初始上下文,就可以使用它来查找其他上下文和对象。
JDNI包中的许多方法在需要指示无法执行所请求的操作时会抛出NamingException
。 JDNI具有源自NamingException
类的丰富的异常层次结构。异常的类名是不言自明的,并在here中列出。
您可以使用@Resource
批注注入资源。您可以找到有关正确使用here的更多信息。
资料来源:
https://docs.oracle.com/javase/tutorial/jndi/overview/index.html
http://www.javaworld.com/article/2076888/core-java/jndi-overview--part-1--an-introduction-to-naming-services.html