Context上下文理解

本文深入探讨了Java中Context的概念及其应用,通过JNDI和Spring框架中的具体例子解释了Context作为环境和容器的角色,帮助读者更好地理解这一核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习中经常看到

Context

,没能明白中文含义,一番搜索后看到此文,颇为

实在,特转之

 

Context

Java

中的出现是如此频繁,但其中文翻译“上下文”又是如此诡异

拗口,

因此导致很多人不是很了解

Context

的具体含义是指什么,

所以很有必要

来深究一下这词的含义。先来举几个

JAVA

中用到

Context

的例子

 

1

JNDI

一个类

javax.naming.InitialContext

,它读取

JNDI

的一些配置信息,并内含

对象和其在

JNDI

中的注册名称的映射信息。请看下面的代码

 

InitialContext ic=

new

 InitialContext(); 

RMIAdaptor server=(RMIAdaptor)ic.lookup("jmx/invoker/RMIAdaptor");

 

这是一段

JBoss

中获取

MBean

的远程调用类的代码。在这里面通过

InitialContext

JNDI

注册的名称“jmx/invoker/RMIAdaptor”来获得

RMIAdaptor 

对象。这和

JAVA

集合中的

MAP

有点象,有一个

String

key

key

对映着它的

对象。

2

再来看看下面

Spring

中最常见的几句代码。

ApplicationContext 

内含

configuration.xml

配置文件的信息,

使得可以通过

getBean

用名称得到相

应的注册对象。

 

ApplicationContext ctx= 

new

 FileSystemXmlApplicationContext("configur

ation.xml"); 

Object obj= ctx.getBean("Object_Name");

 

从上面的代码,我很能体会到

Context

所代表的意义:公用信息、环境、容

....

所以我觉得

Context

翻译成上下文并不直观,

按照语言使用的环境,

译成“环境”、“容器”可能更好。

 

 Context

翻译成“上下文”只是不直观

罢了,

不过也没大错。

我们来看看中文的“上下文”是什么意思。

我们常说听话

传话不能“断章取义”,而要联系它的

 

“上下文”来看。比如,小丽对王老五

说“我爱你”,光看这句还以为在说情话呢。但一看上下文--“虽然我爱你,

但你太穷了,我们还是分手吧”,味道就完全

 

变了。从这里来看“上下文”也

有“环境”的意思,就是语言的环境。

 

上下文其实是一个抽象的概念。我们常见的上下文有

Servlet

中的

pageContext

,访问

JNDI

时候用的

Context

。写过这些代码的人可能比

 

较容易

理解,其实他们真正的作用就是承上启下。比如说

pageContext

他的上层是

WEB

容器,下层是你写的那个

Servlet 

类,

pageContext

作为中间的通道让

Servlet 

Web

容器进行交互。再比如访问

JNDI

Context

,他的上层是

JNDI

服务器(可

 

能是远程的),下层是你的应用程序,他的作用也是建立一个通道

让你能访问

JNDI

服务器,

同时也让

JNDI

服务器接受你的请求,

同样起到交互作

用。

 

所谓上下文,它是用来存储系统的一些初始化信息,例如在

jboss

中通过配

置文件指定了数据源,

那么在

jboss

启动的时候就把这个文件的相关信息上下文

 

中,

于是在我们使用这个数据源的时候,

就需要先获得系统的上下文,

然后再通

过一定的方式将数据源取出来。

至于在系统启动时,

是如何将这些初始化信息加

载到

 

上下文中,而上下文在程序中具体又是以什么形式体现的,应该随着系统

的不同而不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值