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