`

200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?

阅读更多
 

 

【视频&交流平台】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

历史相关文章:

199. Spring Boot JNDI:这是虾米?

前言:

       在上一节中,我们介绍了《Spring Boot JNDI:这是虾米?》,为了大家更好的理解什么是JNDI,这里就带大家一起看看,在Tomcat中是如何玩JNDI的。

       Tomcat配置JNDI有全局配置和局部配置。大致的有以下三种配置方式:

(1)全局配置:基于context.xml的配置。

(2)局部配置:基于server.xml的配置。

(3)局部配置:基于META-INF 的配置。

 

第一种:全局配置:基于context.xml的配置

1)在tomcat的conf/context.xml配置文件中加入(代码支持左右滑动):

 

<?xml version="1.0" encoding="UTF-8"?>
<Context >  
<Resource name="jdbc/mydb"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/mydb"
    username="root" password="root"
    maxActive="20" maxIdle="10"
    maxWait="10000"/>

</Context>

 

特别注意:如果是使用了eclipse进行开发测试的话,可能会碰到如下的异常信息:

Cannot create JDBC driver of class '' for connect URL 'null'

      这是由于context.xml是在开发工具中的servers下的/context.xml,所以需要将配置信息配置servers/Tomcat/context.xml。

2)在项目的web.xml中加入资源引用(非必须的):

    <resource-ref>   
       <description>DB Connection</description>  
       <res-ref-name>jdbc/mydb</res-ref-name>  
       <res-type>javax.sql.DataSource</res-type>  
       <res-auth>Container</res-auth>  
   </resource-ref>  

其中res-ref-name值要和context.xmlname值一致。

特别说明:这个配置是可有可无的,不配置这个的话,也是可以正常运行的。

3)在jsp中调用加载jndi方式:

    Connection conn =null;
     try{
          //初始化查找命名空间
          Context ctx = new InitialContext();
          //InitialContext ctx = new InitialContext();亦可
          //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名
          DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydb");
          //取出连接
           conn = ds.getConnection();
          String sql = "select *from test";
          PreparedStatement ps = conn.prepareStatement(sql);
          ResultSet rs = ps.executeQuery();
           while(rs.next()){
                System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+"");
           }
          out.println(conn);
          out.println(conn.isClosed());
          out.println("</br>");
           System.out.println("connection pool connected !!");  
     } catch (NamingException e) {
      System.out.println(e.getMessage());
     } catch (SQLException e) {
      e.printStackTrace();
     }finally{
          //注意不是关闭,是放回连接池.
          conn.close();
     }

特别注意:不可以直接用main方法测试,必须通过启动容器从jsp中调用

第二种:局部配置:基于server.xml的配置(不推荐使用)

在tomcat的server.xml的<host>标签内,添加:

   <Context docBase="demo-jndi" path="/demo-jndi">
          <Resource name="jdbc/mydb"
            auth="Container"
            type="javax.sql.DataSource"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/mydb"
            username="root" password="root"
            maxActive="20" maxIdle="10"
           maxWait="10000"/>

         </Context>

其他配置同第一种方式。

第三种:局部配置:基于META-INFO的配置

在项目的META-INF 下面新建context.xml加入:

<?xml version="1.0" encoding="UTF-8"?>
<Context >  
<Resource name="jdbc/mydb"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/mydb"
    username="root" password="root"
    maxActive="20" maxIdle="10"
    maxWait="10000"/>

</Context>

其他配置同第一种方式。

 

总结:

如果要配置局部的话,推荐使用第三种方式,这样不依赖tomcat了。但是还是推荐使用第一种方式好,虽然依赖Tomcat,但是是全局的,而且可以配置多个。对于以后切换使用方便。另外在项目的web.xml中添加的资源引用可有可无。

好了本篇对于Tomcat怎么玩JNDI的篇章就到此告一段落了,下一篇《SpringBoot中怎么JNDI – 还是有坑的》。

 

「SpringCloud视频最近更新:

 

24. 覆写Feign的默认配置Configuration之Contract
25. Spring Cloud中关于Feign的常见问题总结
26. 解决Spring Cloud中FeignRibbon第一次请求失败的方法
27. Feign添加 fallbackFactory 属性来触发请求进行容灾降级
28. 断路器Hystrix总结
29. Health Indicator(健康指标) 和metrics stream(指标流)
30. 断路器监控(Hystrix Dashboard)
31. 断路器聚合监控(turbine)

 

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

微信公众号「SpringBoot最近更新:

 

Java8新特性:接口的默认方法
208. Spring Boot Swagger2:排序 – 漂游记
207. Spring Boot Swagger2:极简方式
我读的书很多,但都没有你好看【一禅录】
206. Spring Boot 2.0 Swagger2:使用
205. Spring Boot 2.0 Swagger2:初识Swagger
当要离开的时候,我却动情了
205. jetcache:你需要知道的小技巧
204. jetcache:在Spring Boot中怎么玩?
遇见阿里,遇见自己
203. 阿里jetcache
202. 阿里Pandora Boot
微信公众号赞赏功能升级了,真的假的?
《喜剧之王》「我养你啊」之人生选择
201. Spring Boot JNDI:Spring Boot中怎么玩JNDI
510阿里日,马老师献上最走心、最科技范儿证婚词~
200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?
199. Spring Boot JNDI:这是虾米?
Spring Boot 数据库迁移系列
Spring Boot葵花宝典:初露锋芒:MyBatis insert异常 Parameter 'name' not found
198. Spring Boot Flyway工作原理

 搜索springboot或者扫描以下二维码即可关注:

分享到:
评论

相关推荐

    Spring boot 配置参数一览.pdf

    Spring Boot 是一个开源的 Java 基础框架,主要用于快速、简便地...此外,Spring Boot还支持通过命令行参数、环境变量、JNDI、Servlet上下文参数等多种方式设置配置参数。这为不同的部署和运行环境提供了极大的灵活性。

    spring-boot-reference.pdf

    Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...

    Tomcat中文帮助文档.rar

    1. Spring Boot:Spring Boot内置了Tomcat,简化了微服务的部署和管理。 2. 数据库连接:通过JNDI方式配置数据源,方便与各种数据库(如MySQL、Oracle等)集成。 总结,这份"Tomcat中文帮助文档"全面介绍了Tomcat...

    TOMCAT 开发.

    Spring Boot内置了对Tomcat的支持,可以方便地创建独立的、生产级别的基于Java的应用,只需添加spring-boot-starter-web依赖即可。 九、Tomcat与JNDI集成 JNDI(Java Naming and Directory Interface)允许在Tomcat...

    tomcat连接池mysql多种配置

    在Java Web开发中,Tomcat作为一款广泛应用的Servlet容器,其性能优化往往涉及到数据库连接池的配置。连接池是管理数据库连接的一种技术,它可以提高应用性能,减少数据库资源的浪费。本文将深入探讨如何在Tomcat中...

    spring 配置jndi

    - 考虑使用Spring Boot,它提供了更简洁的方式来配置JNDI数据源,只需在`application.properties`或`application.yml`中设置相应的JNDI名称即可。 - 为了提高性能,可以考虑使用连接池,如C3P0、HikariCP等。...

    apache-tomcat-9.0.38.zip

    - Spring框架:可以通过Spring Boot简化Tomcat的启动和配置。 - JDBC和JNDI:连接到数据库,提供数据服务。 - Jakarta EE(Java EE):Tomcat作为轻量级应用服务器,可部分支持Java EE标准。 9. **扩展性**: -...

    spring-boot源码

    在`spring-boot-autoconfigure`模块中,通过条件注解(如`@ConditionalOnClass`, `@ConditionalOnBean`等)来判断类路径中的类是否存在,进而决定是否加载特定的配置。例如,如果发现`JdbcTemplate`类存在,那么会...

    springboot参考指南

    在Spring环境中使用YAML暴露属性 iii. 23.6.3. Multi-profile YAML文档 iv. 23.6.4. YAML缺点 vii. 23.7. 类型安全的配置属性 i. 23.7.1. 第三方配置 ii. 23.7.2. 松散的绑定(Relaxed binding) iii. 23.7.3. @...

    springEmbeddedTomcatJNDI:Spring Boot 2.x嵌入式tomcat JNDI数据源(开发配置文件)+ WAR

    Spring Boot 2.x嵌入式tomcat JNDI数据源(开发配置文件)+ WAR 该代码旨在通过JNDI数据源查找保持数据库访问。 在开发中,使用配置了JNDI数据源的嵌入式tomcat运行在部署为WAR时,它将在服务器上查找真实的JDNI...

    tomcat-jdbc-7.0.42.jar

    这个连接池组件在Spring Boot框架中被广泛使用,以支持内嵌Tomcat服务器运行JDBC操作。本文将深入探讨`tomcat-jdbc-7.0.42.jar`这个库,包括其核心概念、配置、性能优化以及与Spring Boot的集成。 首先,Tomcat ...

    Websphere Application Server 部署Spring Boot项目源码.zip

    6. **配置数据源**:在WAS管理控制台中,配置一个数据源连接到Oracle数据库,确保JNDI名称与Spring Boot应用配置中使用的名称一致。 7. **测试应用**:部署完成后,通过WAS的URL访问应用,确保一切正常工作。可能...

    tomcat配置大全 tomcat配置大全

    总结,配置Tomcat涉及的关键步骤包括:添加JDBC驱动到类路径,配置`context.xml`以定义数据源,更新`web.xml`以声明对数据源的引用,最后通过JNDI在应用程序中查找并使用数据源。正确配置这些元素对于确保Tomcat能够...

    spring-boot-jboss7:如何使用带有JNDI的数据源在JBoss AS 7上部署Spring Boot应用程序

    在Spring Boot中,我们通常使用`spring.datasource.jndi-name`属性来配置JNDI数据源。但在JBoss AS 7上部署Spring Boot应用时,需要进行一些额外的步骤: 1. **配置JNDI数据源**:在JBoss AS 7的`standalone.xml`或...

    apache-tomcat-8.5.16.tar.gz

    8. **与其他技术的整合**:Tomcat可以与Spring Boot、EJB、JMS、JNDI等其他Java技术集成,构建复杂的企业级应用。 9. **监控与管理**:通过内置的Manager应用(在webapps目录下)或使用远程管理工具,可以监控...

    mac版apache-tomcat-8.5.24.tar

    Tomcat支持Java Naming and Directory Interface (JNDI),允许你在服务器级别定义资源,如数据源,这些资源可以在Web应用中被透明地使用。 8. **与其他技术集成**: - **Spring Boot**:Tomcat常与Spring Boot...

    Tomcat7内嵌服务器

    Tomcat7内嵌可以通过添加特定的依赖项来实现,如Apache Tomcat的`tomcat7-maven-plugin`或Spring Boot的`spring-boot-starter-web`。 2. **启动和关闭服务器**:通过编程方式控制Tomcat7的启动和停止,例如使用`org...

    TomcatServer.rar

    7. **与Spring Boot集成**:现代开发中,Tomcat常作为Spring Boot的内置服务器,简化了部署过程,同时也提供了更高效的开发体验。 总之,通过对“TomcatServer.rar”的研究,我们不仅能深入了解Java Web服务器的...

    详解spring boot中使用JdbcTemplate

    在Spring Boot中,JdbcTemplate是Spring框架提供的一个用于简化JDBC操作的工具类,它为开发者提供了更加方便、健壮的数据库访问接口。通过使用JdbcTemplate,我们可以避免编写大量重复的JDBC模板代码,比如打开和...

Global site tag (gtag.js) - Google Analytics