weblogic是如何通过JNDI把数据源交给应用系统的

关于JNDI在DNS,文件系统等方面的应用不是很了解。只见过系统中通过JNDI的Context获取在J2EE容器中配置的数据源。操作层面一只都会,但一只无法理解J2EE容器是如何把数据源交给应用系统的。

今天跟了下InitialContext的源码,终于搞清楚其中的来龙去脉了。

第一步,weblogic配置数据源。

173617_mHgv_1032172.png

第二部,写个简单的web项目,通过JNDI API访问数据源。

174012_ZKFW_1032172.png

代码写在了 index.jsp 中

174116_sGa3_1032172.png

第三部,在weblogic中部署JndiPro

174229_E1Hb_1032172.png

第四部,访问应用系统

174331_rrq3_1032172.png

JNDI示例完成,实验成功。

下面我们来跟踪应用系统是如何从weblogic获取数据源的。

1.我们调用的是InitialContext的无参构造函数。

174552_xeEU_1032172.png

2.进入init(null)方法。

174712_5HMj_1032172.png

3.进入Hashtable getInitialEnvironment(Hashtable env)

174909_y2tK_1032172.png

env为null。所以只能通过hlper.getJndiProperties来获得JNDI参数。

4.进入getJndiProperties方法。

175140_6fCX_1032172.png

到这一步我们可以大致才出来,JNDI的参数是从系统参数中获取的。

5.验证系统参数中是否有JNDI需要的参数,在index.jsp中加入如下代码

175320_qZoj_1032172.png

打印结果

175359_TEvF_1032172.png

到这一步我们就知道Context的实现类是WLInitialContextFactory。而数据源就是weblogic的这个实现类传给我们的。

 

 

 

 

 

 

转载于:https://my.oschina.net/mlh3823/blog/675880

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值