一、什么是JNDI?
JNDI(Java Naming and Directory Interface,Java命名和目录接口):在程序中使用JNDI获取数据源。说白了就是把数据源取个名字,再根据名字来找数据源。
在JDBC时代,需要把数据库信息,写在代码中去连接。
使用JNDI就是把数据库的连接信息放到j2ee的容器中取一个名字。例如放到tomcat的conf/context.xml中
二、本地springboot项目JNDI怎么配置?
1、配置文件增加jndi的name
spring.datasource.jndi-name=java:comp/env/jdbc/mysql/test
2、增加配置类,定义内置tomcat工厂bean。先打开jndi数据源,再添加Context资源到tomcat上下文中。
@Configuration
public class TomcatConfigs {
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
tomcat.enableNaming();// 打开JNDI数据源
return super.getTomcatEmbeddedServletContainer(tomcat);