Java中的JDNI
java:comp/env 是 Java EE 中 JNDI(Java Naming and Directory Interface)的一部分,用于提供统一的命名和目录服务。
java:comp/env 是一个固定的 JNDI 上下文(Context),它是 Java EE 环境中每个组件(如 Servlet、EJB、JSP 等)的私有的命名空间。
这个上下文用于存储组件需要使用的各种资源,如数据库连接、JMS 连接、数据源、环境变量等。通过 JNDI 在 java:comp/env 下注册资源,可以在应用程序的不同组件之间共享这些资源,同时也可以避免对底层资源的直接依赖。
当你需要在 Java EE 应用程序中访问某个资源时,通常需要通过 JNDI 在 java:comp/env 上下文中查找并获取这个资源的引用。例如,在 Servlet 中获取一个在 java:comp/env 中注册的数据源可以这样做:
// 在JNDI中注册资源
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Create your data source
DataSource dataSource = createYourDataSource();
// Bind the data source to JNDI
envCtx.bind("jdbc/yourDataSource", dataSource);
// 在JNDI中获取资源
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource dataSource = (DataSource) envCtx.lookup("jdbc/yourDataSource");
废话短说