Springboot配置外部容器使用JNDI读取数据源
简介
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。目录服务是命名服务的一种自然扩展。两者之间的关键差别是目录服务中对象不但可以有名称还可以有属性(例如,用户有email地址),而命名服务中对象没有属性 [1] 。(by百度百科)
百度百科就是说的太专业了,简单来说就是将资源引入到服务器中通过JNDI提供给程序使用。
需求
将数据库连接配置改为读取JNDI数据源,由于公司用的是Resin环境下面示例我只在Resin上测试通过,其实换成Tomcat也是一样的原理。
步骤
- resin.xml配置
将mysql-connector-java-5.0.8-bin.jar 放到resin的lib目录下
1 | <!-- the default host, matching any host name --> |
- 修改application.yml
1 | spring: |
- 创建DataSourceConfig
1 | package cn.pconline.config; |
这样的的话我们就把数据源改为引用外部JNDI的了。
存在的不足因为使用了外部容器启动,在开发时Springboot Main方法就不能用了,大大影响了开发调试的效率。