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"的配置有何意義。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章