使用Tomcat JNDI数据源与Spring一起使用步骤如下:
1.将数据库驱动复制到Tomcat的lib文件夹下面
2.配置Tomcat的server.xml配置文件,在GlobalNamingResources节点下面添加一个Resource节点,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name= "UserDatabase" auth= "Container" type= "org.apache.catalina.UserDatabase" description= "User database that can be updated and saved" factory= "org.apache.catalina.users.MemoryUserDatabaseFactory" pathname= "conf/tomcat-users.xml" /> <!-- |- name:表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称, 为了不与其他的名称混淆,所以使用jdbc/oracle,现在配置的是一个jdbc的关于oracle的命名服务。 |- auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效 |- type:此名称所代表的类型,现在为javax.sql.DataSource |- maxActive:表示一个数据库在此服务器上所能打开的最大连接数 |- maxIdle:表示一个数据库在此服务器上维持的最小连接数 |- maxWait:最大等待时间。10000毫秒 |- username:数据库连接的用户名 |- password:数据库连接的密码 |- driverClassName:数据库连接的驱动程序 |- url:数据库连接的地址 --> <Resource name= "jdbc/mysql" auth= "Container" type= "javax.sql.DataSource" maxAction= "100" maxIdle= "30" maxWait= "1000" username= "root" password= "db861110" driverClassName= "com.mysql.jdbc.Driver" url= "jdbc:mysql://localhost:3306/Restaurant?useUnicode=true&characterEncoding=UTF-8" /> </GlobalNamingResources> |
3.配置context.xml文件,在Context节点下面添加一个ResourceLink节点,这个name要跟server.xml里面配置的Resource的name属性保持一致。
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource"/>
4.在工程内配置config.properties文件,如下:
1 2 | dataSource.resourceRef= true dataSource.jndiName=java:comp/env/jdbc/mysql |
5.引入配置文件并创建数据源
1 2 3 4 5 6 7 8 9 10 11 | <!--引入配置文件--><br> <bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > <property name= "locations" > <list> <value>classpath:config.properties</value> </list> </property> </bean> <bean id= "datasource" class = "org.springframework.jndi.JndiObjectFactoryBean" > <property name= "jndiName" value= "${dataSource.jndiName}" ></property> <property name= "resourceRef" value= "${dataSource.resourceRef}" ></property> </bean> |
这样就配置好了,工程就可以使用这个JNDI数据源了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端