JNDI是 Java 命名與目錄接口(Java Naming and Directory Interface),在J2EE規範中是重要的規範之一。java
我我的對jndi的瞭解是:配置數據庫的方式用在了外部配置,通常會是web容器的配置文件裏面,而達到若是數據庫鏈接屬性或數據庫類型不同能夠作到不修改編碼。web
可是我的以爲這是一項落後的技術,畢竟如今用springboot,自己不用咱們去關心太多web容器的問題,並且springboot的基於外部配置文件的自動配置更是簡單、兼容。spring
這裏給出幾篇找的關於JNDI的帖子sql
https://blog.csdn.net/wn084/article/details/80729230數據庫
https://blog.csdn.net/blessed_/article/details/72809004tomcat
一、打開tomcat conf目錄下的context.xml文件springboot
配置ResourceLink標籤,以下:oracle
<ResourceLink global="jdbc/HUINONG" name="jdbc/HUINONG" type="javax.sql.DataSource"/>
二、打開server.xml文件less
在<GlobalNamingResources>標籤下面添加以下配置:編碼
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" name="jdbc/HUINONG" password="123456" type="javax.sql.DataSource" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" username="test"/>
三、代碼中配置數據
<bean id="mainDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/HUINONG" /> </bean>
注意:<ResourceLink>標籤的global屬性隨便起,name屬性指向<Resource>標籤的name屬性,這個name就是jndi數據源的jndiName屬性。代碼中的配置對Tomcat來講,須要加上前綴java:comp/env/,對於jboss來講不用加前綴