JNDI?

本来很早之前就要写这个的,但是感觉一直都还是不是太懂,所以耽搁了再耽搁。

之所以之前对jndi不了解,可能是jndi这种方式不常用了吧。因为现在有很多连接池框架,他有默认的连接配置文件,直接会去找对应配置文件的内容。

在spring boot项目中,数据源可以这样配。该图来自我大神纯洁的微笑的博客。

就算不是spring boot项目,java web项目中,数据源的配置,也可以放在.properties配置文件中,然后获取配置的内容。

比如说用DBCP连接池的时候,可以通过.properties文件来配置连接池,然后可以写一个数据库连接类获取配置文件中数据源的配置。

又比如说,在用C3P0连接池的时候,可以通过.xml文件配置数据源。

我前面提的几种配置数据源的方式都用到了框架,那么不用框架,配置数据源有什么方式呢?

详情见:https://blog.csdn.net/qq_33689414/article/details/61204237

但是说了这么多,还是没有说到JNDI,所以说JNDI是什么呢?


w3school中这样描述:https://www.w3cschool.cn/tomcat/4xy31k9e.html

JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。其实说白了JNDI就是提供一种映射。通过资源名映射到实际的配置。

就像这种比喻。

关于JNDI的好处以及具体使用步骤:https://blog.csdn.net/qidao12/article/details/79146166

所以利用JNDI配置数据库连接池有几种方式呢?
    A.在Tomcat的conf/context.xml中配置
    B.在Tomcat的conf/server.xml中配置
    C.在Tomcat的conf/server.xml中配置虚拟目录时配置
    D.在Web项目中的META-INF目录下新建一个文件context.xml,写入配置
那么,回到我最开始追究JNDI的目的?问题的答案是不是出来了呢?

web.xml

META-INF/context.xml

另一个配置文件配置的数据库

所以说web.xml中配置的引用数据源直接找到了meta-inf/context.xml中同名的resource,所以说根本就不关另一个配置文件配置的数据库的事,所以说是我多虑了!!!!!

还是没弄明白JNDIName="java:comp/env/jdbc/als"的配置有何意义。

发布了56 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40726316/article/details/100865058