JNDI是什么?使用JNDI有什么好處?
JNDI是 Java 命名與目錄接口(Java Naming and Directory Interface),在J2EE規范中是重要的規范之一。
我個人對jndi的了解是:配置數據庫的方式用在了外部配置,一般會是web容器的配置文件里面,而達到如果數據庫連接屬性或數據庫類型不一樣可以做到不修改編碼。
但是個人覺得這是一項落后的技術,畢竟現在用springboot,本身不用我們去關心太多web容器的問題,而且springboot的基於外部配置文件的自動配置更是簡單、兼容。
這里給出幾篇找的關於JNDI的帖子
https://blog.csdn.net/wn084/article/details/80729230
https://blog.csdn.net/blessed_/article/details/72809004
Tomcat配置JNDI方法
1、打開tomcat conf目錄下的context.xml文件
配置ResourceLink標簽,如下:
<ResourceLink global="jdbc/HUINONG" name="jdbc/HUINONG" type="javax.sql.DataSource"/>
2、打開server.xml文件
在<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"/>
3、代碼中配置數據
<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來說不用加前綴