最近学习中常常看到Context,没能明白中文含义,一番搜索后看到此文,颇为实在,特转之 java
Context在Java中的出现是如此频繁,但其中文翻译“上下文”又是如此诡异拗口,所以致使不少人不是很了解Context的具体含义是指什么,因此颇有必要来深究一下这词的含义。先来举几个JAVA中用到Context的例子 服务器
(1)JNDI的一个类javax.naming.InitialContext,它读取JNDI的一些配置信息,并内含对象和其在JNDI中的注册名称的映射信息。请看下面的代码 学习
InitialContext ic=new InitialContext();
RMIAdaptor server=(RMIAdaptor)ic.lookup("jmx/invoker/RMIAdaptor"); spa
这 是一段JBoss中获取MBean的远程调用类的代码。在这里面经过InitialContext中JNDI注册的名称“jmx/invoker /RMIAdaptor”来得到RMIAdaptor对象。这和JAVA集合中的MAP有点象,有一个String的key,key对映着它的对象。 翻译
(2)再来看看下面Spring中最多见的几句代码。ApplicationContext 是内含configuration.xml配置文件的信息,使得能够经过getBean用名称获得相应的注册对象。 server
ApplicationContext ctx= new FileSystemXmlApplicationContext("configuration.xml");
Object obj= ctx.getBean("Object_Name"); xml
从上面的代码,我很能体会到Context所表明的意义:公用信息、环境、容器....。因此我以为Context翻译成上下文并不直观,按照语言使用的环境,翻译成“环境”、“容器”可能更好。 对象
PS: get
上 下文实际上是一个抽象的概念。咱们常见的上下文有Servlet中的pageContext,访问JNDI时候用的Context。写过这些代码的人可能比 较容易理解,其实他们真正的做用就是承上启下。好比说pageContext他的上层是WEB容器,下层是你写的那个Servlet 类,pageContext做为中间的通道让Servlet 和Web容器进行交互。再好比访问JNDI的Context,他的上层是JNDI服务器(可 能是远程的),下层是你的应用程序,他的做用也是创建一个通道让你能访问JNDI服务器,同时也让JNDI服务器接受你的请求,一样起到交互做用。 it