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来讲不用加前缀